Объявление моего регистратора:
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 записывает в каждый файл «служба остановлена».
Достаточно одного файла журнала в день: (