首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“log4net.Config.XmlConfigurator”不是属性类

“log4net.Config.XmlConfigurator”不是属性类
EN

Stack Overflow用户
提问于 2014-06-30 19:01:59
回答 2查看 702关注 0票数 0

我想为我的移动应用程序创建一个日志文本文件。我正在使用compact Framework3.5,我选择了log4net进行日志记录。我遵循下面的博客创建了Config.xml文件和日志文件http://breathingtech.com/2009/using-apache-log4net-in-net-compact-framework-projects/,它运行时没有任何错误,但没有为我的Config.xml文件创建任何日志。

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8" ?>
    <!-- .NET application configuration file -->
    <configuration>
        <!-- This section contains the log4net configuration settings -->
        <log4net>
            <!-- Define some output appenders -->
            <appender name="LogFileAppender" type="log4net.Appender.FileAppender" >
                <file value="log-file.txt" />
                <appendToFile value="true" />
                <layout type="log4net.Layout.PatternLayout">
                     <conversionPattern value="%date [%-5level] - %message%newline" />
                </layout>
            </appender>
        <appender name="DebugAppender" type="log4net.Appender.DebugAppender">
          <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date [%-5level] - %message%newline" />
          </layout>
        </appender>
        <!-- Setup the root category, add the appenders
               and set the default level -->
            <root>
                <level value="ALL" />
          <appender-ref ref="DebugAppender" />
          <appender-ref ref="LogFileAppender" />
            </root>  
        </log4net>
    </configuration>

我在program.cs文件下添加了下面这行

代码语言:javascript
复制
private static readonly log4net.ILog Log = log4net.LogManager.GetLogger(typeof(Program));

string path = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetModules()[0].FullyQualifiedName) + "\\Config.xml";
            if (System.IO.File.Exists(path))
            {
                log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo(path));
            }
Log.Info("Application startup");

做我的Config.xml是正确的,我只是从上面的博客中复制了内容,并且我在program.cs中得到了Config.xml路径。

由于上面的设置没有创建log-file.txt,也没有记录log.Info消息,所以我搜索了一下,并在using log4net.Config;之后添加了以下行

代码语言:javascript
复制
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "../Config.xml", Watch = true)]

这会给我一个错误"'log4net.Config.XmlConfigurator' is not an attribute class“。谁可以帮助我在紧凑的框架中创建日志文件。

谢谢

EN

回答 2

Stack Overflow用户

发布于 2014-06-30 19:14:53

尝试使用以下log4net配置。我使用它,它会生成日志文件。

代码语言:javascript
复制
    <log4net>
        <!-- Define some output appenders -->
        <appender name="rollingFile" type="log4net.Appender.RollingFileAppender,log4net">
            <param name="File" value="log.txt"/>
            <param name="AppendToFile" value="true"/>
            <param name="RollingStyle" value="Date"/>
            <param name="DatePattern" value="yyyy.MM.dd"/>
            <param name="StaticLogFileName" value="true"/>
            <layout type="log4net.Layout.PatternLayout,log4net">
                <param name="ConversionPattern" value="%d %-5p - %m%n"/>
            </layout>
        </appender>
        <!-- Setup the root category, add the appenders and set the default priority -->
        <root>
            <priority value="ALL"/>
            <appender-ref ref="rollingFile"/>
        </root>
    </log4net>
票数 1
EN

Stack Overflow用户

发布于 2014-06-30 19:47:29

在log4net配置文件中,您不需要添加<configuration>根标记。<log4net>应该是根目录。如果您将配置放在应用程序配置文件或web配置文件中,则<configuration>是根标记。

代码语言:javascript
复制
    <?xml version="1.0" encoding="utf-8" ?>
    <log4net>
        <!-- Define some output appenders -->
        <appender name="LogFileAppender" type="log4net.Appender.FileAppender" >
            <file value="log-file.txt" />
            <appendToFile value="true" />
            <layout type="log4net.Layout.PatternLayout">
                 <conversionPattern value="%date [%-5level] - %message%newline" />
            </layout>
        </appender>
    <appender name="DebugAppender" type="log4net.Appender.DebugAppender">
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%-5level] - %message%newline" />
      </layout>
    </appender>
    <!-- Setup the root category, add the appenders
           and set the default level -->
        <root>
            <level value="ALL" />
      <appender-ref ref="DebugAppender" />
      <appender-ref ref="LogFileAppender" />
        </root>  
    </log4net>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24488640

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档