C# 4.0 log4net日志文件在生产中为空,而不是在开发中

C# 4.0 log4net日志文件在生产中为空,而不是在开发中,c#-4.0,.net-4.0,windows-services,log4net,C# 4.0,.net 4.0,Windows Services,Log4net,对于一个用C#4编写的Windows服务,我已经配置了log4net,并且在开发过程中运行良好。但不是在生产中 这是我的配置: <?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,

对于一个用C#4编写的Windows服务,我已经配置了log4net,并且在开发过程中运行良好。但不是在生产中

这是我的配置:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections>
        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
    </configSections>

    <log4net>
        <appender name="FileAppender" type="log4net.Appender.RollingFileAppender">
            <file value="Logs/Log.xml"/>
            <appendToFile value="true"/>
            <rollingStyle value="Size"/>
            <maxSizeRollBackups value="10"/>
            <maximumFileSize value="100MB"/>
            <layout type="log4net.Layout.XmlLayout">
                <param name="Prefix" value=""/>
            </layout>
        </appender>

        <root>
            <level value="ALL"/>
            <appender-ref ref="FileAppender"/>
        </root>
    </log4net>
</configuration>
当我在本地运行应用程序时,内容会按预期写入日志。当我在服务器上运行它时,日志文件是在正确的路径上创建的,但它仍然是空的。日志中没有写入一个字符


显然,我的配置正在被提取,因为文件位于正确的位置,具有正确的扩展名。

这是一个愚蠢的问题。。。但是你确定你的服务已经正确启动并且正在运行吗

我会添加控制台appender,也可能是eventlong appender,如果可能的话,试着将您的服务作为控制台应用程序运行,看看是什么


我想说的是,由于日志文件正在创建中,log4net的情况看起来很好…?

这是一个愚蠢的问题。。。但是你确定你的服务已经正确启动并且正在运行吗

我会添加控制台appender,也可能是eventlong appender,如果可能的话,试着将您的服务作为控制台应用程序运行,看看是什么


我想说,由于日志文件正在创建,log4net看起来很好…?

作为一种解决办法,我从程序集中删除了
[assembly:log4net.Config.XmlConfigurator(Watch=true)]
行,并在应用程序启动时在代码中完成了它。

作为一种解决办法,我删除了
[assembly:log4net.Config.XmlConfigurator](Watch=true)
行,并在应用程序启动时在代码中执行该操作。

我刚刚遇到了相同的问题,并修复了,[assembly:log4net.Config.XmlConfigurator(Watch=true)]是在ninjectwebcommon文件中,而不是在assembly info中。在我将其移动到assembly info后,它开始工作

我刚刚遇到了相同的问题,并修复了该问题,[assembly:log4net.Config.XmlConfigurator(Watch=true)]是在ninjectwebcommon文件中,而不是在assembly info中。在我将其移动到assembly info后,它开始工作

我建议启用内部调试,这意味着如果log4net失败,您应该了解原因-有关详细信息,请参阅您找到解决方案了吗?a有相同的问题排序,我删除了
[assembly:log4net.Config.XmlConfigurator](Watch=true)
行,并在应用程序启动时在代码中执行。我建议启用内部调试,这意味着如果log4net失败,您应该了解原因-有关详细信息,请参阅找到解决方案了吗?a有相同的问题排序,我删除了
[assembly:log4net.Config.XmlConfigurator(Watch=true)]
从程序集中删除行,并在应用程序启动时在代码中执行。
[assembly: log4net.Config.XmlConfigurator(Watch = true)]