【发布时间】:2015-08-19 08:18:50
【问题描述】:
它是如何工作的
我已经使用 log4net 一段时间了,通常我的配置看起来像这样:
Hierarchy hierarchy = (Hierarchy)LogManager.GetRepository();
hierarchy.Configured = true;
_roller = new RollingFileAppender();
_patternLayout = new PatternLayout();
_roller.Layout = _patternLayout;
hierarchy.Root.AddAppender(_roller);
hierarchy.Root.Level = Level.Info
_roller.AppendToFile = true;
_roller.File = Path.Combine(FileDirectory, ".log");
_roller.StaticLogFileName = false;
_roller.PreserveLogFileNameExtension = true;
_roller.LockingModel = new FileAppender.MinimalLock();
_roller.MaxSizeRollBackups = -1; //--> Logger doesn't delete files himself
_roller.RollingStyle = RollingFileAppender.RollingMode.Composite;
_roller.MaximumFileSize = LogFileSize;
_roller.DatePattern = "yyyy-MM-dd";
_roller.PreserveLogFileNameExtension = true;
_patternLayout.ConversionPattern = "%date [%-5level] %message%newline";
_patternLayout.ActivateOptions();
_roller.ActivateOptions();
我确实通过 c# 代码配置了 log4net 组件,因为我需要让它动态化。
生成的文件,如下所示:
- yyyy-MM-dd.log
- yyyy-MM-dd.Count.log
我的问题
现在我的日志文件应该这样命名:
- OPCReaderClient_yyyy-MM-dd.log
- OPCReaderClient_yyyy-MM-dd.Count.log
这就是我对配置进行以下更改的原因
_roller.DatePattern = "OPCReaderClient_yyyy-MM-dd";
但结果如下: OPCRea19erClienA_2015-08-19.log
为什么?
重点是,我希望前缀是动态的。所以我需要知道如何实现我的任何日志文件都将被正确命名,只要前缀只包含 ASCII 字符。
【问题讨论】:
标签: c# log4net log4net-configuration