声明我的记录器:
private static readonly ILog Logging = LogManager.GetLogger(typeof(Service1));
我的构造函数:
public Service1()
{
InitializeComponent();
InitializeLogging(@"c:log");
}
这就是我初始化记录器的方式:
public static void InitializeLogging(String Path)
{
var patternLayout = new PatternLayout()
{
ConversionPattern = "%utcdate{yyyy-MM-dd HH:mm:ss.fff}"
+ "|%level"
+ "|%class"
+ "|%method"
+ "|%line"
+ "|%timestamp"
+ "|%message"
+ "%newline"
};
patternLayout.ActivateOptions();
RollingFileAppender roller = new RollingFileAppender()
{
AppendToFile = true,
File = Path,
DatePattern = "yyyyMMdd HHmmss'.log'",
Layout = patternLayout,
StaticLogFileName = false,
RollingStyle = RollingFileAppender.RollingMode.Date
};
roller.ActivateOptions();
BasicConfigurator.Configure(roller);
}
当Windows服务未启动时,log4net会生成一个日志文件,其中包含一行代码"服务已启动"。
调用 WCF 方法时,log4net 始终生成一个包含一行日志的新文件。当服务停止时,log4net 会在每个文件中写入"服务已停止"。
每天一个日志文件就足够:(
我已经移动了声明位置
private static readonly ILog Logging = LogManager.GetLogger(typeof(Service1));
从class Service1 : ServiceBase
到static class Program
并且我还将记录器更改为公共,将服务1更改为程序。