相关疑难解决方法(0)

Log4Net"无法找到架构信息"消息

我决定使用log4net作为新web服务项目的记录器.一切都运行正常,但我收到了很多消息,如下面的消息,对于我在我使用的每个log4net标签web.config:

找不到元素'log4net'的架构信息......

以下是我的相关部分web.config:

  <configSections>
    <section name="log4net" 
        type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
  </configSections>
  <log4net>
    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="C:\log.txt" />
      <appendToFile value="true" />
      <rollingStyle value="Size" />
      <maxSizeRollBackups value="10" />
      <maximumFileSize value="100KB" />
      <staticLogFileName value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level: %message%newline" />
      </layout>
    </appender>
    <logger name="TIMServerLog">
      <level value="DEBUG" />
      <appender-ref ref="RollingFileAppender" />
    </logger>
  </log4net>
Run Code Online (Sandbox Code Playgroud)

解决了:

  1. 将每个log4net特定标记复制到单独的xml文件.确保.xml用作文件扩展名.
  2. 将以下行添加到AssemblyInfo.cs:
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "xmlFile.xml", Watch = true)]
Run Code Online (Sandbox Code Playgroud)

nemo补充道:

只需向任何人发出警告,请遵循此主题中的答案建议.将x4中的log4net配置放在Web服务的根目录下可能存在安全风险,因为默认情况下任何人都可以访问它.如果您的配置包含敏感数据,请注意,您可能希望将其放在何处.


@wcm:我尝试使用单独的文件.我添加了以下行AssemblyInfo.cs

[assembly: …
Run Code Online (Sandbox Code Playgroud)

schema logging log4net web-services web-config

57
推荐指数
4
解决办法
4万
查看次数

标签 统计

log4net ×1

logging ×1

schema ×1

web-config ×1

web-services ×1