为了账号安全,请及时绑定邮箱和手机立即绑定

log4net没有将任何消息写入日志文件或控制台

log4net没有将任何消息写入日志文件或控制台

C#
慕的地10843 2021-04-15 14:15:52
因此,我有一个控制台应用程序。使用log4net记录消息。下面是我的log4net.config文件。<?xml version="1.0"?><log4net>    <appender name="FileAppender" type="log4net.Appender.FileAppender">        <file value="log.txt" />        <appendToFile value="true" />        <layout type="log4net.Layout.PatternLayout">            <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />        </layout>    </appender>    <appender name="ConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">        <mapping>            <level value="ERROR" />            <backColor value="Red, HighIntensity" />        </mapping>        <mapping>            <level value="WARN" />            <foreColor value="White" />            <backColor value="Yellow" />        </mapping>        <mapping>            <level value="INFO" />            <foreColor value="White" />        </mapping>        <mapping>            <level value="DEBUG" />            <backColor value="Green" />        </mapping>        <layout type="log4net.Layout.PatternLayout">            <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />        </layout>    </appender>    <root>        <level value="ALL" />        <appender-ref ref="ConsoleAppender" />        <appender-ref ref="FileAppender" />    </root></log4net>在我的控制台应用程序中,我要运行此类public class SchedulerService{    private static readonly ILog _log = LogManager.GetLogger(typeof(SchedulerService));    private readonly SchedulerRegistry _registry;    public SchedulerService(SchedulerRegistry schedulerRegistry)    {        _registry = schedulerRegistry;    }    public void Start()    {        JobManager.Initialize(_registry);        JobManager.JobException += JobManager_JobException;        _log.Info("SchedulerService is started");    }结果是创建了log.txt文件,但其大小为零,为空,没有任何内容记录到该文件中,也没有任何内容记录到控制台中。我究竟做错了什么?
查看完整描述

3 回答

?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

log4net.config是对的。

确保:

  1. Copy to Output Directory 物业的的log4net.config文件设置为Copy Always。这很重要,因为在构建和运行应用程序时,需要将配置文件复制到bin文件夹中。通过右键单击配置文件并选择来执行此操作Properties。然后将Copy to Output Directory属性的值设置为Copy Always

  2. 您告诉log4net加载您的配置。实现此目的的一种方法是在AssemblyInfo文件底部添加以下行:

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config")]


查看完整回答
反对 回复 2021-04-24
?
月关宝盒

TA贡献1772条经验 获得超5个赞

试试这个方法。您必须将其命名为ColoredConsoleAppender而不是ConsoleAppender。希望它能正常工作。


<appender name="FileAppender" type="log4net.Appender.FileAppender">

    <file value="log.txt" />

    <appendToFile value="true" />

    <layout type="log4net.Layout.PatternLayout">

        <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />

    </layout>

</appender>

<appender name="ColoredConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">

    <mapping>

        <level value="ERROR"/>

        <foreColor value="Red"/>

    </mapping>

    <mapping>

        <level value="INFO"/>

        <foreColor value="White"/>

    </mapping>

    <mapping>

        <level value="DEBUG"/>

        <foreColor value="Green"/>

    </mapping>

    <layout type="log4net.Layout.PatternLayout">

        <conversionPattern value="%message%newline"/>

    </layout>

</appender>

<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">

    <layout type="log4net.Layout.PatternLayout">

        <conversionPattern value="%date %-5level %logger - %message%newline"/>

    </layout>

</appender>

<root>

    <priority value="ALL"/>

    <appender-ref ref="FileAppender"/>

    <appender-ref ref="ColoredConsoleAppender"/>



</root>


查看完整回答
反对 回复 2021-04-24
?
POPMUISE

TA贡献1765条经验 获得超5个赞

看起来像是我之前从未注意到的VS 2017的新功能。

以前,只有通过“添加引用”或“ NuGet软件包管理器”手动添加了相应的组件时,才能解析名称空间。

在VS 2017中,当您尝试解析名称空间时,它实际上为您安装了这些软件包。就像我这样,这可能很方便,但也很令人沮丧。

不知道为什么,但是VS决定包括此Common.Logging和Common.Logging.Core软件包,而不是我的解决方案中已经包含的log4net。可能我盲目地信任,并且没有注意到这些软件包与我想使用的库无关。奇怪的是,代码编译就很好了:)

因此,这就是代码无法正常工作的原因。意识到。


查看完整回答
反对 回复 2021-04-24
  • 3 回答
  • 0 关注
  • 345 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号