1. 程式人生 > >動態指定log4net日誌文件名稱

動態指定log4net日誌文件名稱

sum ger 初始 span 如果 log 日誌文件 但是 changelog

如果是希望日誌文件按常見的日期格式動態命名,沒什麽好說的,直接修改app.config

<param name="DatePattern" value="yyyyMMdd&quot;.log&quot;" />

但我遇到的一個場景,是同一個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日誌文件名稱