我用winFrom程序,配置log4net,使用app.config配置没有问题,但我想使用单独配置文件配置,最后生成不出来任何东西,不知道问题出在哪里,请高手帮忙看下,代码如下:
我建立log4netconfig.xml配置文件:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler" />
</configSections>
<appSettings>
<!-- To enable internal log4net logging specify the following appSettings key -->
<!-- <add key="log4net.Internal.Debug" value="true"/> -->
</appSettings>
<log4net>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="D:\\RollingFileAppender_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 线程ID:[%thread] 日志级别:%-5level 出错类:%logger property:[%property{NDC}] - 错误描述:%message%newline" />
</layout>
</appender>
<root>
<!--文件形式记录日志-->
<appender-ref ref="RollingFileAppender" />
</root>
</configuration>人后在AssemblyInfo.cs中初始化
[assembly: log4net.Config.XmlConfigurator (ConfigFile = "log4netconfig.xml", Watch = true)]
最后代码里面:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private static readonly ILog log = LogManager.GetLogger(typeof(Form1)); private void button1_Click(object sender, EventArgs e)
{
Random random = new Random();
for (int i = 0; i < 1; i++)
{
//记录错误日志
log.Error("error", new Exception("在这里发生了一个异常,Error Number:"+random.Next()));
}
MessageBox.Show("日志记录完毕", "系统信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
最后程序运行,什么都没有,不知道问题出在哪里,请朋友们帮帮忙,没有分了,不能给大家分了,真对不起,大家谁能帮我一下,谢谢了
我建立log4netconfig.xml配置文件:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler" />
</configSections>
<appSettings>
<!-- To enable internal log4net logging specify the following appSettings key -->
<!-- <add key="log4net.Internal.Debug" value="true"/> -->
</appSettings>
<log4net>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="D:\\RollingFileAppender_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 线程ID:[%thread] 日志级别:%-5level 出错类:%logger property:[%property{NDC}] - 错误描述:%message%newline" />
</layout>
</appender>
<root>
<!--文件形式记录日志-->
<appender-ref ref="RollingFileAppender" />
</root>
</configuration>人后在AssemblyInfo.cs中初始化
[assembly: log4net.Config.XmlConfigurator (ConfigFile = "log4netconfig.xml", Watch = true)]
最后代码里面:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private static readonly ILog log = LogManager.GetLogger(typeof(Form1)); private void button1_Click(object sender, EventArgs e)
{
Random random = new Random();
for (int i = 0; i < 1; i++)
{
//记录错误日志
log.Error("error", new Exception("在这里发生了一个异常,Error Number:"+random.Next()));
}
MessageBox.Show("日志记录完毕", "系统信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
最后程序运行,什么都没有,不知道问题出在哪里,请朋友们帮帮忙,没有分了,不能给大家分了,真对不起,大家谁能帮我一下,谢谢了
1. [assembly:log4net.Config.DOMConfigurator( )] 2. [assembly:log4net.Config.DOMConfigurator( ConfigFile="web.config",Watch=true)] 3. [assembly: log4net.Config.DOMConfiguratorAttribute(Watch=true)]
将上述三条语句中任意一条写在AssemblyInfo.cs文件里均可以写出log文件来,大家可以试一试。
1.添加log4net引用
2.为项目新增一个文件,选取新增向导里的"应用程序配置文件",则项目里会增加一个app.config文件.当程序编译后,会在你的执行目录下生成一个<你的程序集名>.exe.config文件内容和本文件一样
3.编辑app.config文件如下:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net"
type="log4net.Config.Log4NetConfigurationSectionHandler,
log4net-net-1.0"
/>
</configSections>
<log4net>
<root>
<level value="ALL" />
<appender-ref ref="LogFileAppender" />
</root> <appender name="LogFileAppender" type="log4net.Appender.FileAppender" >
<param name="File" value="log-file.txt" />
<param name="AppendToFile" value="true" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] <%X{auth}>%n - %m%n" />
</layout>
</appender>
</log4net> </configuration>
这里请注意<configuration> 和<configurations>标签不能少
4.编辑Assembly.cs文件,添加如下内容:
[assembly:log4net.Config.DOMConfigurator( ConfigFileExtension="config",Watch=true)]
5.在程序里添加如下代码
log4net.ILog log = log4net.LogManager.GetLogger("MyLogger");
log.Debug("test"); 这时你再运行程序,就应该可以看到结果了,我试过如果设置
level = "OFF",则输出是没有结果的,改成"ALL"是有结果的