Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在编写windows服务程序时,日志中没有内容_C# - Fatal编程技术网

C# 在编写windows服务程序时,日志中没有内容

C# 在编写windows服务程序时,日志中没有内容,c#,C#,我正在配置一个commom.loggin windows服务程序。目前,它可以生成日志文件,但其中没有任何内容 我正在使用common.logging和log4net 以下是我的common.logging conf脚本: <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net

我正在配置一个commom.loggin windows服务程序。目前,它可以生成日志文件,但其中没有任何内容

我正在使用common.logging和log4net

以下是我的common.logging conf脚本:

        <configSections>
                <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
            <sectionGroup name="common">
                <section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging" />
            </sectionGroup>
        </configSections>
        <common>
            <logging>
                <factoryAdapter type="Common.Logging.Simple.ConsoleOutLoggerFactoryAdapter, Common.Logging">
                    <arg key="level" value="info" />
                    <arg key="showLogName" value="true" />
                    <arg key="showDataTime" value="true" />
                    <arg key="dateTimeFormat" value="yyyy/MM/dd HH:mm:ss:fff" />
                </factoryAdapter>
            </logging>
        </common>
    </configuration>
<log4net xsi:noNamespaceSchemaLocation="http://csharptest.net/downloads/schema/log4net.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <root>                          
            <level value="ALL"/>
            <appender-ref ref="rollingFile"/>           
        </root>
        <logger name="ApplicationInfoLog">
            <level value="ALL"/>            
            <appender-ref ref="rollingFile"/>
        </logger>

        <appender name="rollingFile" type="log4net.Appender.RollingFileAppender">
            <param name="File" value="Logs/a.txt"/>
            <param name="AppendToFile" value="true"/>
            <param name="RollingStyle" value="Date"/>           
            <param name="DatePattern" value="yyyy.MM.dd&quot;.txt&quot;"/>
            <param name="StaticLogFileName" value="true"/>
            <layout type="log4net.Layout.PatternLayout">            
                <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] &lt;%X{auth}&gt; - %m%n"/>
            </layout>
        </appender>
    </log4net>

如果可能是错误的,我找不到它,请帮助我,谢谢。

Log4Net会无声地失败,前提是没有日志记录比关闭应用程序更好。如果log4net配置在控制台应用程序中按预期工作,但在服务(守护进程)中不工作,那么最有可能的问题是某种权限问题


有关如何启用log4net内部调试的详细信息,请参阅问题。下面是Phil Haack的观点:

您可能没有使用common.logging,您可以使用log4net进行如下配置:

    <configSections>
            <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>           
    </configSections>     
<log4net xsi:noNamespaceSchemaLocation="http://csharptest.net/downloads/schema/log4net.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <root>                          
            <level value="ALL"/>
            <appender-ref ref="rollingFile"/>           
        </root>
        <appender name="rollingFile" type="log4net.Appender.RollingFileAppender">
            <param name="File" value="Logs/a.txt"/>
            <param name="AppendToFile" value="true"/>
            <param name="RollingStyle" value="Date"/>           
            <param name="DatePattern" value="yyyy.MM.dd&quot;.txt&quot;"/>
            <param name="StaticLogFileName" value="true"/>
            <layout type="log4net.Layout.PatternLayout">            
                <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] &lt;%X{auth}&gt; - %m%n"/>
            </layout>
        </appender>
    </log4net>

只需使用root即可删除记录器,如下所示:

    <configSections>
            <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>           
    </configSections>     
<log4net xsi:noNamespaceSchemaLocation="http://csharptest.net/downloads/schema/log4net.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <root>                          
            <level value="ALL"/>
            <appender-ref ref="rollingFile"/>           
        </root>
        <appender name="rollingFile" type="log4net.Appender.RollingFileAppender">
            <param name="File" value="Logs/a.txt"/>
            <param name="AppendToFile" value="true"/>
            <param name="RollingStyle" value="Date"/>           
            <param name="DatePattern" value="yyyy.MM.dd&quot;.txt&quot;"/>
            <param name="StaticLogFileName" value="true"/>
            <layout type="log4net.Layout.PatternLayout">            
                <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] &lt;%X{auth}&gt; - %m%n"/>
            </layout>
        </appender>
    </log4net>

它只是使用log4net,工作正常