LOG4net
log4net库是Apache log4j框架在Microsoft .NET平台的实现,是一个帮助程序员将日志信息输出到各种目标(控制台、文件、数据库等)的工具。
首先要必须下载一个log4net.dll,这个在网上都可以搜到
接下来,的是如何用Log4net,输出日志文档
首先,把log4net添加到引用,
然后在配置文件中编写app.Config
<configSections>
<section name="log4net" type="log4net.Config.Loog4NetConfigurationSectionHandler,log4net"/>
</configSections>
<log4net>
<!--定义输出到文件中-->
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<!--定义文件存放位置-->
<file value="log\\"></file>
<!--是否在文件中追加日志信息-->
<appendToFile value="true"></appendToFile>
<!--文件输出以日期方式滚动-->
<rollingStyle value="Date"></rollingStyle>
<!--日志文件名以输出日期命名,可更改其他日期方式-->
<datePattern value="yyyy\\yyyyMM\\yyyyMMdd'.txt'"></datePattern>
<!--表明输出的日志信息是否一直在同一文件中-->
<staticLogFileName value="false"></staticLogFileName>
<!--备份文件的最大文件数目-->
<param name="MaxSizeRollBackups" value="100"></param>
<layout type="log4net.Layout.PatternLayout">
<!--每条日志末尾的文字说明-->
<!--输出格式-->
<!--样例 :2016-03-26 13:11:11-->
<conversionPattern value="记录时间:%date %n线程ID:[%thread] %n日志级别: %-5level %n出错类: %logger property :[%property{NDC}] - %n错误描述:%message%newline%n"></conversionPattern>
</layout>
</appender>
<!--Info日志-->
<appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="Log\\LogInfo\\" />
<param name="AppendToFile" value="true" />
<param name="MaxFileSize" value="10240" />
<param name="MaxSizeRollBackups" value="100" />
<param name="StaticLogFileName" value="false" />
<param name="DatePattern" value="yyyy\\yyyyMM\\yyyyMMdd'.txt'" />
<param name="RollingStyle" value="Date" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%newline %n记录时间:%date %n线程ID:[%thread] %n日志级别: %-5level %n日志描述:%message%newline %n"/>
</layout>
</appender>
<!--监控日志-->
<appender name="MonitorAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="Log\\LogMonitor\\" />
<param name="AppendToFile" value="true" />
<param name="MaxFileSize" value="10240" />
<param name="MaxSizeRollBackups" value="100" />
<param name="StaticLogFileName" value="false" />
<param name="DatePattern" value="yyyy\\yyyyMM\\yyyyMMdd'.txt'" />
<param name="RollingStyle" value="Date" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%newline %n记录时间:%date %n线程ID:[%thread] %n日志级别: %-5level %n跟踪描述:%message%newline %n"/>
</layout>
</appender>
<!--Error日志--><!--这里面有三个属性,分别对应的上面的山歌配置文件,-->
<logger name="logerror">
<level value="ERROR" />
<appender-ref ref="RollingLogFileAppender" />
</logger>
<!--Info日志-->
<logger name="loginfo">
<level value="INFO" />
<appender-ref ref="InfoAppender" />
</logger>
<!--监控日志-->
<logger name="logmonitor">
<level value="Monitor" />
<appender-ref ref="MonitorAppender" />
</logger>
</log4net>
然后在编写后台代码,
这里用的是窗体程序(不影响输出)
新建一个LogHelperl
//必须要在类名中加上这个属性
[assembly:log4net.Config.XmlConfigurator(Watch = true)]
namespace Log4net
{
public class LogHelper
{
//根据不懂得类型将数据写入不同的文件当中
//这里的三个属性分别对应的是配置文件中写的属性,通过这里去连接
static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("loginfo");
static readonly log4net.ILog logerror = log4net.LogManager.GetLogger("logerror");
static readonly log4net.ILog logmonitor = log4net.LogManager.GetLogger("logmonitor");
public static void WriteLog(Type t, Exception ex)
{
//Log4net的5种消息属性
记录错误日志
//loginfo.Error("error", new Exception("发生了一个异常"));
记录严重错误
//loginfo.Fatal("fatal", new Exception("发生了一个致命错误"));
记录一般信息
//loginfo.Info("info");
记录调试信息
//loginfo.Debug("debug");
记录警告信息
//loginfo.Warn("warn");
loginfo.Error("Error", ex);
}
public static void WriteLog(Type t, string Texts)
{
loginfo.Info(Texts);
}
}
}
最后是操作结果
//第一种记录方法
//(1)Form1是类的名称
//(2) 第二个参数是字符串信息
string Msg = @"
Name:{0}
开始时间:{1}
结束时间:{2}
总 时 间:{3}秒
Form表单数据:{4}";
//这里是做的一个字符串的拼接,来完成多自己定义属性的操作
string msg = string.Format(Msg, "1", "2", "3","4","5");
LogHelper.WriteLog(typeof(Form1), msg);
//第二种方法是捕捉异常
//(1)Form1是类的名称
//(2) 第二个参数是字符串信息
try
{
string a = "a";
int b = Convert.ToInt32(a);
}
catch (Exception ex)
{
LogHelper.WriteLog(typeof(Form1), ex);
}
最后附上我自己写的代码http://pan.baidu.com/s/1dFMIyOD