Log4net 总是在 Windows 服务中生成一个新文件作为 WCF 服务

Log4net always generates a new file inside a Windows Service as a WCF Service

正在声明我的记录器:

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 会生成一个日志文件,其中包含一行代码"service started"。

调用 WCF 方法时,log4net 总是生成一个包含一行日志的新文件。当服务停止时,log4net 写入每个文件 "service is stopped".

一天一个日志文件就够了:(

我已经移动了

的声明位置

private static readonly ILog Logging = LogManager.GetLogger(typeof(Service1));

class Service1 : ServiceBasestatic class Program

我也将 Logger 的 private 更改为 public,并将 Service1 更改为 Program。