2014-06-30 20 views
0

我要创建我的移动application.I日志文本文件我工作的紧凑框架3.5和我选择的log4net为logging.I遵循下面的博客创建config.xml文件和日志文件http://breathingtech.com/2009/using-apache-log4net-in-net-compact-framework-projects/它运行没有任何错误,但不会创建任何日志file.See我的config.xml文件,“log4net.Config.XmlConfigurator”不是一个属性类

<?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中下面一行的文件

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是否正确,我只是复制了内容t从上面的博客,我得到了program.cs中的Config.xml路径。

由于上面的设置不创建log-file.txt和未登录的log.Info消息,我一派和using log4net.Config;

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "../Config.xml", Watch = true)] 

之后添加下面的线这给我一个错误“'log4net.Config.XmlConfigurator' is not an attribute class”。任何人都可以帮助我在紧凑的框架中创建日志文件。

谢谢

回答

1

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

<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

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

<?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> 
相关问题