動態指定log4net日誌文件名稱
阿新 • • 發佈:2018-01-24
sum ger 初始 span 如果 log 日誌文件 但是 changelog
如果是希望日誌文件按常見的日期格式動態命名,沒什麽好說的,直接修改app.config
<param name="DatePattern" value="yyyyMMdd".log"" />
但我遇到的一個場景,是同一個exe要運行多個實例,如何分別寫入不同的日誌文件呢?
參考過 動態修改log4net組件的日誌文件名
運行的結果是新的 log文件確實產生了,但是日誌記錄並不能寫入進去,加之年代久遠,也就沒有跟原作者討論的激情了
後來發現 log4Net 動態改變寫入文件 , 問題完美解決。
‘‘‘ <summary> ‘‘‘動態指定日誌文件名稱 ‘‘‘ </summary> ‘‘‘ <param name="logger">日誌對象實例,log4net.ILog</param> ‘‘‘ <param name="fileName">日誌輸出的文件名</param> ‘‘‘ <remarks>一般在靜態或初始化時調用</remarks> Public Shared Sub ChangeLogFileName(ByVal logger As ILog, ByVal fileName As String) Dim apdArray() As Appender.IAppender = logger.Logger.Repository.GetAppenders For Each apd As Appender.IAppender In apdArray If apd.GetType Is GetType(Appender.RollingFileAppender) Then logger.InfoFormat("Change Log File to {0}", fileName) ‘ 字符串會寫入到 app.config 中指定的原始日誌文件Dim rfa As Appender.RollingFileAppender = CType(apd, Appender.RollingFileAppender) rfa.File = fileName rfa.ActivateOptions() Exit For End If Next End Sub
動態指定log4net日誌文件名稱