【问题标题】:Log4net to variable filesLog4net 到变量文件
【发布时间】:2015-08-10 16:28:18
【问题描述】:

我需要创建每个用户的日志 - 记录的数据量会很大,我不想将其保存在单个文件中。

有没有办法以我可以指定的方式配置 log4net,应该将日志写入哪个文件?

当然,我可以编写自己的附加程序。但是如何(很好地)将有关目标文件的信息传递给它?

【问题讨论】:

  • 为什么不登录数据库并将用户名存储为条目的一部分?

标签: c# .net logging log4net log4net-appender


【解决方案1】:

如果你的文件名在程序执行过程中没有改变,那么你可以初始化它

string logfileName = ...

log4net.GlobalContext.Properties["LogName"] = logfileName;

注意,这需要在记录第一条消息之前完成。

然后更改您的配置文件以使用此属性,例如

<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
    <file type="log4net.Util.PatternString" value="%property{LogName}" />
    ...

您可以在模式字符串中使用 ${USERNAME} 或 ${COMPUTERNAME} 等内置变量。

例如

 <file type="log4net.Util.PatternString" value="LogFileFor_${USERNAME}_On_${COMPUTERNAME}.log" />

【讨论】:

  • 不幸的是,它在程序执行期间发生变化,正在服务中执行日志记录,该服务同时适用于不同用户。
猜你喜欢
  • 1970-01-01
  • 2016-06-06
  • 2015-11-22
  • 1970-01-01
  • 2012-09-21
  • 1970-01-01
  • 1970-01-01
  • 2016-04-04
  • 1970-01-01
相关资源
最近更新 更多