none
log4netについて(二重起動防止) RRS feed

  • 質問

  • Windowsのタスクスケジューラから30秒ずつ起動するパッチです。二重起動防止の為に設定ファイルにstartFlgの値を保存しています。
    今は二重起動しないんですがログが出力されない状態です。ソースは下記の通りです。log4netで設定足りないそうですが分からなくて困っています。
    教えて貰いませんか。よろしくお願いいたします。

    Private Shared _logger As log4net.ILog

    Shared Sub Main(ByVal args() As String)
       
       logger.Info("処理開始")
       
       If startFlg Then
          logger.Info("二重起動の為に処理終了")
          Exit Sub
       End If
       
       '処理続行
       
       
    End Sub

    Public Shared ReadOnly Property logger As log4net.ILog
            Get
                If _logger Is Nothing Then
                    Dim h As Hierarchy = CType(LogManager.GetRepository, Hierarchy)
                    Dim layout As log4net.Layout.PatternLayout = New log4net.Layout.PatternLayout
                    h.LoggerFactory.CreateLogger(LogManager.GetRepository, "logger1")
                    Dim logger1 As Logger
                    logger1 = h.GetLogger("logger1", h.LoggerFactory)
                    layout.ConversionPattern = "%date{yyyy/MM/dd HH:mm:ss} %message%newline"
                    layout.ActivateOptions()
                    Dim appender As RollingFileAppender = New RollingFileAppender()
                    appender.File = appPath + "\logs\" + DateTime.Now.ToString("yyyyMMdd") + ".log"
                    appender.Layout = layout
                    appender.Encoding = Text.UnicodeEncoding.UTF8
                    appender.AppendToFile = True
                    appender.ActivateOptions()
                    logger1.AddAppender(appender)
                    logger1.Level = Level.All
                    log4net.Config.BasicConfigurator.Configure(h, appender)
                    _logger = log4net.LogManager.GetLogger(Reflection.MethodBase.GetCurrentMethod().DeclaringType)
                End If
                Return _logger
            End Get
    End Property

    Luky9


    • 編集済み Luky9 2019年12月9日 3:05
    2019年12月9日 2:44

回答