6

我们正在尝试使用 Log4Net 从我们的 IIS 6 部署的 WCF 应用程序中记录。我们正在尝试登录文件,但似乎无法创建要创建的日志文件,更不用说查看其中的日志输出了。out web.config 的相关部分是:

<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>

使用此配置,我们可以在使用 DebugView 时从应用程序中看到 INFO 级别的日志记录,但很明显,这是来自片段而不是
片段。

是否有我们未能在 web.config 中设置的内容?我们为要写入的日志创建的目录是否存在权限问题?

请指出我们明显的错误。

4

5 回答 5

8

我还必须将此行添加到我的应用程序的 AssemblyInfo.cs 文件中,以使 log4net 正常工作。

// LOG 4 net config
[assembly:log4net.Config.XmlConfigurator(Watch=true)]
于 2009-02-16T18:33:22.813 回答
5

使用SysInternals 的 ProcessMonitor找出权限被拒绝的位置

(可能您可以通过附加调试器并捕获异常来确定相同的信息,而不是在 Just My Code 中)

您确定运行服务的进程对您尝试写入的文件夹具有权限吗?

于 2009-02-16T09:27:23.877 回答
2

尝试 XmlConfigurator.Configure()

于 2010-03-10T07:53:39.997 回答
0

您是否为 log4net 配置了配置部分?我在你的代码片段中没有看到

于 2009-06-14T10:12:22.243 回答
0

我将首先将 WCF 服务作为控制台应用程序运行 - 这样您可以指定应用程序运行的用户帐户,并查看问题是您的配置问题还是通过 IIS 运行服务的权限问题。

如果您不确定如何将服务作为控制台应用程序运行,请查看http://www.jacopretorius.net/2009/08/running-windows-service-inside-console.html

于 2009-10-26T19:56:03.807 回答