滚动Log4Net日志文件中的自定义文件名?

Bre*_*gby 18 asp.net log4net

我们有一个ASP .Net应用程序,我们使用Log4Net来记录应用程序中的详细信息 - 没有新内容 - 滚动日志文件名的格式通常为:

rolling-log.txt 
rolling-log.txt.1
rolling-log.txt.2 etc.
Run Code Online (Sandbox Code Playgroud)

应用程序的每个用户都添加到日志文件中,对于特定用户的情况,日志文件可能难以阅读,因此,我们希望以某种方式修改配置文件以单独记录用户的日志详细信息,每次写入特定文件,例如

<applicationId>rolling-log.txt
<applicationId>rolling-log.txt.1
<applicationId>rolling-log.txt.2
etc.
Run Code Online (Sandbox Code Playgroud)

每个用户的唯一应用程序ID在哪里,由五位数字组成,例如

12345rolling-log.txt
Run Code Online (Sandbox Code Playgroud)

关于实现这个的最佳方法的任何想法,假设它是可能的?

干杯

布雷特

iso*_*tel 37

<file type="log4net.Util.PatternString">
  <conversionPattern value="C:\Logs\log-%date{ yyyy.MM.dd.HH.mm.ss}-[%processid].log" />
</file>
Run Code Online (Sandbox Code Playgroud)

从这里


小智 16

寻找log4net上下文属性...

在你的代码中:

log4net.GlobalContext.Properties["id"] = "12345";
Run Code Online (Sandbox Code Playgroud)

然后

log4net.Config.XmlConfigurator.ConfigureAndWatch(new FileInfo("configPath"));
Run Code Online (Sandbox Code Playgroud)

在log4net配置文件中:

<file type="log4net.Util.PatternString"
            value="%property{id}rolling-log.txt" />
Run Code Online (Sandbox Code Playgroud)


Joe*_*Joe 8

我相信Log4Net配置文件支持环境变量(例如USERNAME)以及可以为您提供所需内容的可自定义模式.

参阅Log4Net V1.2.10发行说明 "PatternString for pattern based configuration" .