Я очень запутался в том, как настроить log4net в проекте службы Windows. Добавьте к этому, что я новичок в конфигурациях Visual Studio. Итак, я создал это приложение-службу Windows и хочу добавить к нему log4net. Все инструкции разные, и в одном ответе говорится, что в информацию о сборке включена следующая строка. Другой ответ сказал, чтобы добавить его в AssemblyInfo.cs (в папке App_Code). Значит ли это, что мне нужно добавить класс AssemblyInfo.cs в папку с исходными кодами, а затем просто добавить эту строку в конструктор? Я не знаю, что это значит!
[assembly:log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
Я добавил appSettings в свой файл app.config:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<appSettings>
<add key="log4net.Internal.Debug" value="true"/>
</appSettings>
</configuration>
Нужно ли мне также создать файл log4net.config?
Я пытался следовать инструкциям из этого вопроса, но информации просто недостаточно, чтобы иметь для меня смысл. Я часами искал разумные инструкции. Может ли кто-нибудь рассказать мне (на высоком уровне), как настроить log4net для приложения службы Windows? Какие файлы мне нужно создать; какие конфигурации мне нужно добавить; Я знаю, что мне нужно будет создать класс регистратора, но конфигурация меня полностью сбила с толку.
--------------------------------- РЕДАКТИРОВАТЬ ------------- ---------------------
Шаг 1) Мой app.config выглядит так:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,Log4net"/>
</configSections>
<log4net>
<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="log.log" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="5" />
<maximumFileSize value="100KB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %level %logger - %message %exception%newline" />
</layout>
</appender>
<root>
<level value="ALL" />
<appender-ref ref="LogFileAppender" />
</root>
</log4net>
</configuration>
Шаг 2) Я добавил это в основной файл Program.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.ServiceProcess;
using System.Text;
using System.Threading.Tasks;
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
namespace MyAppService
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
static void Main()
{
log4net.Config.XmlConfigurator.Configure();
Шаг 3) Я добавил ссылку на log4net
Шаг 4) В моих классах, где я веду журнал, я добавил следующее:
private static ILog logger = LogManager.GetLogger(typeof(Reader));
Шаг 4) Я добавил такие операторы ведения журнала:
logger.Info("Data Read Completed Successfully.");