Я действительно хочу, чтобы кто-то мог мне помочь в этом. Это действительно сводит меня с ума.
У меня есть простое приложение Windows Forms, и я пытаюсь использовать библиотеку log4net для ведения журнала (я просто тестирую его в этом проекте, потому что это не сработало в моем основном проекте).log4net не работает для Windows Forms Application
Итак, у меня есть регулярные Form1.cs, app.config, AssemblyInfo.cs и Program.cs.
В моем app.config у меня есть:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<log4net>
<root>
<level value="DEBUG" />
<appender-ref ref="LogFileAppender" />
</root>
<appender name="LogFileAppender" type="log4net.Appender.FileAppender">
<file value="log-file.txt" />
<appendToFile value="true" />
<layout type="log4net.Layout.PatternLayout">
<header value="[Your Header text here]" />
<footer value="[Your Footer text here]" />
<conversionPattern value="%date [%thread] %-5level %logger [%ndc]
<%property{auth}> - %message%newline" />
</layout>
</appender>
</log4net>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
</configuration>
В Form1.cs:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using log4net;
using log4net.Config;
namespace log4net.test
{
public partial class Form1 : Form
{
private static readonly ILog log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
log4net.Config.XmlConfigurator.Configure();
log.Debug("This is a DEBUG level message. The most VERBOSE level.");
log.Info("Extended information, with higher importance than the Debug call");
log.Warn("An unexpected but recoverable situation occurred");
}
}
}
И в конце AssemblyInfo.cs файла я добавил:
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "app.config", Watch = true)]
Когда я отлаживаю и перехожу к button1_Click, я вижу, что ничего не происходит. Объект журнала имеет свой:
IsInfoEnabled, IsDebugEnabled, IsErrorEnabled, IsWarnEnabled установлен в false и ничего не происходит.
Я пытался найти решение в течение всего дня и ничего. Может ли кто-нибудь помочь?
Поскольку вы не раздел конфигурации log4net, введенный в разделе configSections в app.config, я полагаю, ваш app.config игнорируется. В противном случае вы получите исключение, заявив, что раздел log4net не является законным в app.config. –