充满梦想的log4net探索之旅

step1

引用log4net.dll

 

step2

指定log4net配置文件

添加

[assembly:log4net.Config.XmlConfigurator(Watch=true)]

 

step3

在步骤2中指定的配置文件添加log4net配置.

在示例配置中添加了控制台,文件以及数据库(mysql为例示范)日志,可按需要配置.

 

<?xmlversion="1.0" encoding="utf-8" ?>

<configuration>

<configSections>

<!--log4netconfiguration-->

<sectionname="log4net"type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>

</configSections>

 

<log4net>

<root>

<levelvalue="All" />

<appender-refref="ConsoleAppender" />

<appender-refref="FileAppender" />

<appender-refref="DBAppender"/>                        

</root>

 

<appendername="ConsoleAppender"type="log4net.Appender.ConsoleAppender">

<layouttype="log4net.Layout.PatternLayout">

<conversionPatternvalue="%date{yyyy-MM-dd HH:mm:ss} %-5level %logger.%method -%message%newline%exception%newline"></conversionPattern>

</layout>

</appender>

 

<appendername="FileAppender"type="log4net.Appender.RollingFileAppender">

<!--需修改file-->

<filevalue="log\\log.log" />

<paramname="MaxSizeRollBackups" value="10" />

<paramname="MaximumFileSize" value="5MB" />

<layouttype="log4net.Layout.PatternLayout">

<conversionPatternvalue="%date{yyyy-MM-dd HH:mm:ss} %-5level %logger.%method -%message%newline%exception%newline" />

</layout>

</appender>

 

<appendername="DBAppender"type="log4net.Appender.ADONetAppender">

<bufferSizevalue="1" />

<!--需修改连接字符串-->

<connectionTypevalue="MySql.Data.MySqlClient.MySqlConnection, MySql.Data" />

<connectionStringvalue="DataSource=localhost;Database=Log4netExplore;UserID=root;Password=root;Pooling=true;Max Pool Size=500;Min PoolSize=0"/>

<commandTextvalue="INSERT INTO log (Date,Thread,Level,Logger,Message,Exception) VALUES(@log_date, @thread, @log_level, @logger, @message, @exception)" />

<parameter>

<parameterNamevalue="@log_date" />

<dbTypevalue="DateTime" />

<layouttype="log4net.Layout.RawTimeStampLayout" />

</parameter>

<parameter>

<parameterNamevalue="@thread" />

<dbTypevalue="String" />

<sizevalue="255" />

<layouttype="log4net.Layout.PatternLayout">

<conversionPatternvalue="%thread" />

</layout>

</parameter>

<parameter>

<parameterNamevalue="@log_level" />

<dbTypevalue="String" />

<sizevalue="50" />

<layouttype="log4net.Layout.PatternLayout">

<conversionPatternvalue="%level" />

</layout>

</parameter>

<parameter>

<parameterNamevalue="@logger" />

<dbTypevalue="String" />

<sizevalue="255" />

<layouttype="log4net.Layout.PatternLayout">

<conversionPatternvalue="%logger.%method" />

</layout>

</parameter>

<parameter>

<parameterNamevalue="@message" />

<dbTypevalue="String" />

<sizevalue="4000" />

<layouttype="log4net.Layout.PatternLayout">

<conversionPatternvalue="%message" />

</layout>

</parameter>

<parameter>

<parameterNamevalue="@exception" />

<dbTypevalue="String" />

<sizevalue="2000" />

<layouttype="log4net.Layout.ExceptionLayout" />

</parameter>                

 

</appender>

 

 

</log4net>

<startup>

<supportedRuntimeversion="v4.0" sku=".NETFramework,Version=v4.5" />

</startup>

 

</configuration>

 

step4

在需要使用日志的类添加如下成员

        // Create alogger for use in this class

        private static readonly ILog log =LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

        // NOTE that usingSystem.Reflection.MethodBase.GetCurrentMethod().DeclaringType

        // is equivalent totypeof(LoggingExample) but is more portable

        // i.e. you can copy the code directlyinto another class without

        // needing to edit the code.

 

然后调用log.Info("Hello,world!")即可.

 

效果

 

控制台日志


 

屏幕剪辑的捕获时间:2015/9/4 0:06

 

文本日志


 

屏幕剪辑的捕获时间:2015/9/4 0:07

 

数据库日志

 

 

屏幕剪辑的捕获时间:2015/9/4 0:10

 示例代码

 

注意:

获取当前methodname,可通过new StackFrame().GetMethod().Name,相当于new StackTrace().GetFrame(0).GetMethod().Name,获取调用堆栈上一个方法,可通过newStackTrace().GetFrame(1).GetMethod().Name.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值