【发布时间】:2015-06-29 08:45:40
【问题描述】:
我正在使用 .NET Framework 4.0 和 log4net 1.2.13 开发一个 Windows 窗体应用程序。
这是我第一次在 Windows 窗体应用程序中使用 log4net,但它不起作用。也许我现在忘记了一个配置步骤,它不起作用:我找不到日志文件。
这就是我实例化记录器的方式:
public partial class MainForm : Form
{
private static readonly log4net.ILog _logger =
log4net.LogManager.GetLogger(typeof(MainForm));
这是 App.Config 的内容:
<log4net xsi:noNamespaceSchemaLocation="http://csharptest.net/downloads/schema/log4net.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<appender type="log4net.Appender.RollingFileAppender" name="AppLogErrorAppender">
<file value="D:\\AppError.log" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<datePattern value=".yyyyMMdd.lo\g" />
<maximumFileSize value="5MB" />
<maxSizeRollBackups value="-1" />
<countDirection value="1" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %-5level [%thread] %logger - %message%newline%exception" />
</layout>
</appender>
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %-5level [%thread] %logger - %message%newline%exception" />
</layout>
</appender>
<logger name="AppLog">
<level value="ERROR" />
<appender-ref ref="AppLogErrorAppender" />
</logger>
<root>
<level value="ERROR" />
<appender-ref ref="AppLogErrorAppender" />
<appender-ref ref="ConsoleAppender" />
</root>
</log4net>
我在这里登录:
public const string LogExceptionNameMessageFormatString = "EXCEPTION: {0} - Message: {1}";
private void LogError(string exceptionMessage, string exceptionName)
{
_logger.ErrorFormat(LogExceptionNameMessageFormatString, exceptionName, exceptionMessage);
}
我有一个断点,它停止了。
我做错了什么?
【问题讨论】:
-
“不起作用”非常模糊 - 您观察到什么行为?您能否发布一个简短但完整的程序来演示该问题,而不仅仅是一个 sn-p?
-
我已经更新了我的问题。问题是我找不到日志文件。
-
日志文件是在应用程序尝试记录某些内容时生成的(当您调用 _logger.Info 等时),而不是在应用程序启动时生成。你在记录什么吗?您是否使用配置初始化了 log4net?请贴出相关代码
-
这看起来不像 App.Config,它看起来像一个单独的 log4net 配置文件。你需要初始化 log4net 来读取配置文件:logging.apache.org/log4net/release/manual/configuration.html
-
@StuartGrassie 这是我的 App.Config 文件的一部分。我没有把所有不相关的数据都放好。