我想为我的移动应用程序创建一个日志文本文件。我正在使用compact framework 3.5,我选择了log4net进行日志记录。我按照下面的博客创建了Config.xml文件和日志文件http://breathingtech.com/2009/using-apache-log4net-in-net-compact-framework-projects/它运行时没有任何错误但没有创建任何日志文件。请参阅我的Config.xml文件,
<?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
是否正确,我只是复制了上述博客中的内容,并且我在program.cs中获得了Config.xml
路径。
由于上面的设置没有创建log-file.txt
而没有记录log.Info消息,我用Google搜索并在using log4net.Config;
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "../Config.xml", Watch = true)]
这给了我一个错误&#34; 'log4net.Config.XmlConfigurator' is not an attribute class
&#34;。任何人都可以帮我在紧凑的框架中创建一个日志文件。
由于
答案 0 :(得分: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 :(得分: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>