Can't get Log4Net to work in our WCF application [duplicate]

a 夏天 提交于 2019-12-22 05:51:53

问题


We are trying to use Log4Net to log from our IIS 6-deployed WCF Application. We are trying to log to a file, but can't seem to get the log files to be created, let alone see the logging output in them. The pertinent pieces of out web.config are:

<sectionGroup name="common">
    <section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging" />
</sectionGroup>
...
<common>
    <logging>
        <factoryAdapter type="Common.Logging.Simple.TraceLoggerFactoryAdapter, 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>

<log4net>
    <appender name="FileAppender" type="log4net.Appender.RollingFileAppender">
        <param name="File" value="c:\logs\ApplicationInfoTest.log" />
        <threshold value="INFO" />
        <param name="AppendToFile" value="true" />
        <param name="DatePattern" value="ddMMyyyy" />
        <param name="MaxSizeRollBackups" value="10" />
        <param name="MaximumFileSize" value="10MB" />
        <param name="RollingStyle" value="Size" />
        <param name="StaticLogFileName" value="true" />
        <layout type="log4net.Layout.PatternLayout">
            <param name="Header" value="\r\n\r\n---------------------------------------------\r\n" />
            <param name="Footer" value="\r\n---------------------------------------------\r\n\r\n" />
            <param name="ConversionPattern" value="%d [%t] %-5p - %m%n" />
        </layout>
    </appender>
    <root>
        <level value="INFO" />
        <appender-ref ref="FileAppender" />
    </root>
  </log4net>

With this configuration we can see INFO level logging coming out of our application when using DebugView, but it is clear that this is from the piece and not the
piece.

Is there something that we have failed to set up in web.config? Is it a permissions issue with the directory we have created for the logs to be written to?

Please point out our obvious mistake.


回答1:


Use ProcessMonitor from SysInternals to find out where permissions are being refused

(Potentially you can determine the same info by attaching a debugger and trapping on exceptions, not in Just My Code)

Are you sure that the process under which the service is running has permissions on the folder you're trying to write to?




回答2:


I have also had to add this line to the AssemblyInfo.cs file of my application in order to get log4net working.

// LOG 4 net config
[assembly:log4net.Config.XmlConfigurator(Watch=true)]



回答3:


Try XmlConfigurator.Configure()




回答4:


Do you have a configuration section configured for log4net? I didn't see that in your code snippet




回答5:


I would first run the WCF service as a console application - this way you can specify the user account for the application to run as and see if the problem is with your config or with a permissions issue running the service through IIS.

If you are unsure of how to run the service as a console application take a look at http://www.jacopretorius.net/2009/08/running-windows-service-inside-console.html



来源:https://stackoverflow.com/questions/552718/cant-get-log4net-to-work-in-our-wcf-application

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!