我想为我的移动应用程序创建一个日志文本文件。我正在使用compact Framework3.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消息,所以我搜索了一下,并在using log4net.Config;之后添加了以下行
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "../Config.xml", Watch = true)]这会给我一个错误"'log4net.Config.XmlConfigurator' is not an attribute class“。谁可以帮助我在紧凑的框架中创建日志文件。
谢谢
发布于 2014-06-30 19:14:53
尝试使用以下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>发布于 2014-06-30 19:47:29
在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>https://stackoverflow.com/questions/24488640
复制相似问题