关键词不能为空

当前您在: 主页 > 英语 >

log4net配置及使用

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-17 23:44
tags:

-

2021年2月17日发(作者:bugtrap)



第一步:在项目引用



文件



第二步:






文件中加入一句代码,位置如下:








type=






第三步:




建立一个单独的配置文件,文件名为:




(这个配置文件会在


Ap p_Data


目录下按日期每天产生一个日志文件,如:


Log s_





配置文件内容:




xml



version


=



1.0




encoding


=



utf-8



?>


<


log4net


>










<


root


>






<


level



value


=



ALL



/>






<


appender-ref



ref


=



SysAp pender



/>





root


>








<


logger


name


=



WebLogger< /p>



>






<


level



value


=



DEBUG

< p>


/>





logger


>





<


appender



name


=



SysAppen der




type

=



gFileAppender,log4net



>






<


param



name


=



File




value


=



App_Data/



/>






<


param



name


=



AppendToFil e




value


=



true



/>






<


param



name


=



RollingStyl e




value


=



Date



/>






<


param



name


=



DatePattern




value


=



"


Logs_

< p>
"


yyyyMMdd


"


.txt


"


/>






<


param



name


=



StaticLogFi leName




value

< p>
=



false


< p>
/>






<


layout


type


=



nLayout,lo g4net



>








<


param



name


=



ConversionP attern




value

< p>
=



%d [%t] %-5p %c - %m%n




/>








<


param



name


=



Header

< p>



value


=




----------- -----------header--------------------------


&


#10;



/>








<


param



name


=



Footer

< p>



value


=




----------- -----------footer--------------------------


&#


10;



/>







layout


>





appender


>




<


appender



name


=



consoleA pp





< /p>


type


=



eA ppender,log4net



>






<


layout


type


=



nLayout,lo g4net



>








<


param



name


=



ConversionP attern




value

< p>
=



%d [%t] %-5p %c - %m%n




/>







layout


>





appender


>





<


appender



name


=



SysAppen der




type

=



gFileAppender


< /p>


>






<


param



name


=



File




value


=



App_



/>






<


param



name


=



AppendToFil e




value


=



true



/>






<


param



name


=



MaxSizeRoll Backups




value


=



12



/>











<


param



name


=



MaximumFile Size




value


=



500KB



/>











<


param



name


=



RollingStyl e




value


=



Size



/>






<


param



name


=



StaticLogFi leName




value

< p>
=



true



/>






<


layout


type


=



nLayout



>








<


param



name


=



ConversionP attern




value

< p>
=



%d [%t] %-5p %c [%x]


- %m%n



/>







layout


>





appender


>

< p>


log4net


>



第四步:


(


这步很关键


)


(


应该建立


web


项目而不是网站


)



在 文件



加入一句代码


,

< br>的路径所在


Properties


目录下



加入的代码如下:



//


日志组件配置



[assembly: figurator(ConfigFile =


= true)]


第五步


:开始使用


log4net


.cs


代码



using log4net;


using uration;



object


o =


ConfigurationSettings


.GetC onfig(



);














.


DOMConfigurator


.Configure(o


as



.


Xm lElement


);


(此处的代码已过时)

< br>















log4net.


ILog


logger =


log4net.


LogManager< /p>


.GetLogger(



);














(



调试


< p>
);














(



这是一个 错误日志



);














(



这是一个致命的错误日志


< br>);














(



这是一条 警告日志



);














(



这是一条普通信息



);










ILog


log =


log4ne t.


LogManager


.GetLogger(

< p>
MethodBase


.GetCurrentMethod().Dec laringTy


pe);














//


记录错误日志















(



,


new



Exception


(


发生了一个异常



));














//


记录严重错误















(



,


new



Exception


(


发生了一个致命错误



));














//


记录一般信息















(



);














//


记录调试信息















(



);














//


记录警告信息















(



);














Con sole


.WriteLine(



日志 记录完毕。



);














Console


.Read();





第二部分详细说明:涉及多种输出途径



下面的例子展示了如何利用


log4net


记录日志






首先从官方网站下载最近版本的


log4net


组件 ,现在的最新版本是


1.2.10


。在程序中我们只

< p>
需要



文件就行了,添加对



的引用,就可以在程序中使用了。




接着我们配置相关的配置文件



Win Form


对应的是


*.



WebForm


对应的是


*.config




本实例中是控制台应用程序,配置如下(附 各配置的说明)






xml



version


=



1.0




encoding


=



utf-8



?>


<


configuration


>




<


configSections


>






<


section


< br>name


=



log4net




type


=



SectionHandler


< p>
/>





configSections


>




<


appSettings


>





appSettings


>




<


log4net


>











<


appender



name


=



LogFileA ppender




type

< p>
=



pender



>















<


file



value


=



D:


/>








<


appendToFile



value


=



tru e



/>








<


rollingStyle



value


=



Dat e



/>








<


datePattern



value


=



yyyy MMdd-HH:mm:ss



/>








<


layout


type


=



nLayout



>



















<


footer


value


=



by


周公



/>




























<


conversionPattern



v alue


=



记录时间:


%date


线程


ID:[%thread]


日志级


别:


%-5level


出错类:


%logger property:[%property{NDC}] -


错误描

< br>述:


%message%newline



/>









layout


>







appender


>











<


appender



name


=



ConsoleA ppender




type

< p>
=



eAppender


< /p>


>










<


layout


type


=



nLayout



>










<


con versionPattern



value

< br>=



%date [%thread] %-5level %logger


[%property{NDC}] - %message%newline



/>









layout


>







appender


>











<


appender



name


=



EventLog Appender




type


=



ogAppender



>








<


layout


type


=



nLayout



>










<


con versionPattern



value

< br>=



%date [%thread] %-5level %logger


[%property{NDC}] - %message%newline



/>









layout


>







appender


>











<


appender



name


=



AdoNetAp pender_Access




typ e


=



Appender



>








<


connectionString



value


=



Provider=.4.0;Data


Source=C:



/>








<


commandText



value


=



INSE RT INTO LogDetails


([LogDate],[Thread], [Level],[Logger],[Message]) VALUES (@logDate, @thread,


@logLevel, @logger,@message)



/>















<


parameter


>










<


parameterName



value


=



@l ogDate



/>










<


dbType


value


=



String



/>










<


size



value


=



240

< br>


/>










<


layout


type


=



nLayout



>












<


conversionPattern



value


=



%date



/>











layout


>









parameter


>








<


parameter


>










<


parameterName



value


=



@t hread



/>










<


dbType


value


=



String



/>










<


size



value


=



240

< br>


/>










<


layout


type


=



nLayout



>












<


conversionPattern



value


=



%thread



/>











layout


>









parameter


>








<


parameter


>










<


parameterName



value


=



@l ogLevel



/>










<


dbType


value


=



String



/>










<


size



value


=



240

< br>


/>










<


layout


type


=



nLayout



>












<


conversionPattern



value


=



%level



/>











layout


>









parameter


>








<


parameter


>










<


parameterName



value


=



@l ogger



/>










<


dbType


value


=



String



/>










<


size



value


=



240

< br>


/>










<


layout


type


=



nLayout



>












<


conversionPattern



value


=



%logger



/>











layout


>









parameter


>








<


parameter


>










<


parameterName



value


=



@m essage



/>










<


dbType


value


=



String



/>












<


size



value


=



240

< br>


/>










<


layout


type


=



nLayout



>












<


conversionPattern



value


=



%message



/>











layout


>









parameter


>







appender


>











<


root


>















<


appender-ref



ref


=



LogFi leAppender



/>















<


appender-ref



ref


=



Conso leAppender



/>















<


appender-ref



ref


=



Event LogAppender



/>














root


>






log4net


>



configuration


>


程序文件:



using


System;


using


c;


using



using



using


tion;


using


log4net;


< /p>


//


注意下面的语句一定要加上,指定


l og4net


使用


.config


文件 来读取配置信息



//


如果是


WinForm


(假定程序为


< br>,


则需要一个



文件)

< p>


//


如果是


WebFo rm


,则从



中读取相关信息

< p>


[


assembly


: .


XmlConfigurator


(Watch =


true


)]


namespace


Log4NetDemo


{






///








///



说明:


本程序演示如何利用


log4n et


记录程序日志信息。


log4net


是一个功能著


名的开源日志记录组件。







///



利用


log4net


可以方便地将日志信息记录到文件、控制台、


W indows


事件日志


和数据库中(包括


MS SQL Server, Access, Oracle9i,Oracle8i,DB2,SQLi te


)。







///



下面的例子展示了如何利用


log4net

记录日志







///



作者:周公







///



时间:


2008-3-26






///



首发地址:

< br>/zhoufoxcn/archive/2008/03/26/






///








public



class



MainClass






{










public



static



void


Main(


string


[] args)










{














//(new MainForm());














//


创建日志记录组件实例















ILog


log =


log4ne t.


LogManager


.GetLogger(

< p>
MethodBase


.GetCurrentMethod().Dec laringTy


pe);














//


记录错误日志















(



,


new



Exception


(



发生了一个异常



));
















//


记录严重错误















(



,


new



Exception


(



发生了一个致命错误



));














//


记录一般信息















(



);














//


记录调试信息















(



);














//


记录警告信息















(



);














Con sole


.WriteLine(



日志 记录完毕。



);














Console


.Read();










}






}


}



详细配置说明



说明自从上次在


2008


年在博客上发表过有关


log4ne t


的用法介绍文章之后(网址:


http:

///zhoufoxcn/archive/2008/03/26/


),有不少 朋


友在博文下留言询问一些细节,


现在就一些比较普遍的问题做 一些稍微深入的解答,希


望大家满意。



首先说明一点的是,


log4net


解决的问题是提供一个记 录日志的框架,它提供了向多种


目标写入的实现,比如利用


lo g4net


可以方便地将日志信息记录到文件、控制台、


Win dows


事件日志和数据库(包括


MS SQL Server, Access,


Oracle9i,Oracle8i,DB2,S QLite


)中,一般来说我们只需要提供一个描述性的字符串,


然后


log4net


就会自动提供有关运行时的一些信息。< /p>



Log4Net


的版本仍是

< p>
1.2.10



2008


年我写博文的时候也是这个版本),有


.NET1.0



.NET1.1



.NET2.0

< p>
版本,如果有正在使用高于


.NET2.0


开发的 也不用担心,可以直接


引用这个类库,像在


.NET2.0


中开发一样,它的网址是:


http:


// /log4net/


关于在


Web


中 支持的问题



在我们开发项目时都会使用到

config


文件,可以在


config

< br>文件中配置


log4net


。这一点

Web


项目和


WinForm


项目 都是一样的。需要注意的是,因为在


Web


项目中一般以较低< /p>


权限的角色来运行


Web


项目的,


所以在使用文件型日志时要注意不要放在本项目根文件


夹之外。




config


文 件中的配置




要使用


log4net



首先要在


c onfig


文件的



节点中增加配置


(如果没有


这个节点请手动增加 ),如下:




view plaincopy to clipboardprint?












type=



/>















type=



/>





除此之外,


还要在顶级节点



下增加



子节点。




节点下就可以增加



子节点,


每个


< br>子节点代表一种记录日志的


方式(仅在这里配置了不代表启用了)。



具体说来有如下


Appender:

< p>
AdoNetAppender


:利用


< p>
记录到数据库的日志。



AnsiColorTe rminalAppender


:在


ANSI


窗口终端写下高亮度的日志事件。



A spNetTraceAppender


:能用




Trace


的方式查看记录的日志。



BufferingForwardingAppender


:在输出到子


Appenders


之前先缓存日志事件 。





Co nsoleAppender


:将日志输出到控制台。



EventLogAppender


:将日志写到

Windows Event Log.



FileAp pender


:将日志写到文件中。



LocalSyslogAppender


:将日志写到


loc al syslog service (


仅用于


UNIX


环境下


).



M emoryAppender


:将日志存到内存缓冲区。



NetSendAppender


:将日志输出到

< br>Windows Messenger service.


这些日志信息将在


用户终端的对话框中显示。



Remote SyslogAppender


:通过


UDP

< br>网络协议将日志写到


Remote syslog service




Remoting Appender


:通过


.NET Remoting


将日志写到远程接收端。


< br>RollingFileAppender


:将日志以回滚文件的形式写到文件中 。



SmtpAppender


:将日 志写到邮件中。



TraceAppender


:将日志写到


.NET trace


系统。



UdpAppender


:将日志


connectionless UDP datagra ms


的形式送到远程宿主或以


UdpClient


的形式广播。



关于使用


l og4net


中可能会使用到的一些参数


%m(message):


输出的日志消息,如


(



)


输出的一条消息




%n(


new


line):


换行




%d(datetime):


输出当前语句运行的时刻




%r(run time):


输出程序从运行到执行到当前语句时消耗的毫秒数




%t(thread id):


当前语句所在的线程


ID



%p(priority):


日志的当前优先级别,即


DEBUG



INFO



WARN


…等




%c(


class

< br>):


当前日志对象的名称,例如:


%f(file):


输出语句所在的文件名。


< p>
%l(line)


:输出语句所在的行号。



%


数字:表示该项的最小长度,如果不够,则用空格填充,如“


%-5level


”表示


level


的最小宽度是


5


个字符,如果实际长度不够< /p>


5


个字符则以空格填充。



下面以一个实际的例子来说明问题,比如在配置中有“


%date [%thread]


(%file:%line) %-5level %logger [%property{NDC}] - %message%newline


”,那么


实际的日志中会是如下格式:



“记录时间:


2010-11-17 16:16:36,561


线程


ID:[9]


日志级别:


文件:


所在行


E RROR



错类:


m property:[(


null


)] -


错误描述:


error


ion:


在这里发生了一个异常


,Error Number:2036084948




关于对数据库的支持



前面已经说过,


log4net


是支持包括


MS SQL Server, Access,


Oracle9i,Oracle8i,D B2,SQLite


在内的数据库的,如果是文件型数据库(如


Access



SQLite


)的话就 需要指定数据库文件的位置(在


Web


中最好指定在有读写权限 的文件


夹下,并且实现创建好表),如果是网络数据库就需要指定正确的数据库连接字符 串。



比如要记录到


Oracle


数据库中,在配置文件中可以增加一个


< appender>


节点,配置


如下:







type=



>












Client, Version=1.0.3300.0, Culture=neutral,


Pu blicKeyToken=b77a5c561934e089


/>












ID=[user];Password=[password]


/>











(Datetime,Thread,Log_Level,Logger,Message) VALUES


(:log_date, :thread, :log_level, :logger, :message)


/>












/>























/>














/>














/>
































/>
















/>














/>














>
















/>











































/>














/>














/>














>
















/>











































/>














/>














/>














>
















/>











































/>














/>














/>














>
















/>


































type=



>










Client, Version=1.0.3300.0, Culture=neutral,


Pu blicKeyToken=b77a5c561934e089


/>










ID=[user];Password=[password]


/>










(Datetime,Thread,Log_Lev el,Logger,Message) VALUES


(:log_date, :thread, :log_level, :logger, :message)


/>










/>



















/>












/>












/>


























/>












/>












/>












>














/>



































/>












/>


-


-


-


-


-


-


-


-



本文更新与2021-02-17 23:44,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/663708.html

log4net配置及使用的相关文章