Журнал 4net всегда создает новый файл внутри службы Windows как службы WCF - PullRequest
0 голосов
/ 18 июня 2020

Объявление моего регистратора:

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 Служба не запускается, log 4net создает файл журнала с одной строкой кода, «служба запущена».

Когда вызывается метод WCF, log 4net всегда генерирует новый файл с одной строкой журнала. И когда служба остановлена, журнал 4net записывает в каждый файл «служба остановлена».

Достаточно одного файла журнала в день: (

1 Ответ

0 голосов
/ 18 июня 2020

Я переместил позицию объявления для

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

с class Service1 : ServiceBase на static class Program

, а также изменил частную позицию на publi c для Регистратор и Service1 для программирования.

...