- 浏览: 6693442 次
- 性别:
- 来自: 武汉
文章分类
最新评论
-
逐客叫我:
看完了懵了,一会原生方法栈一会堆,自己都不用一套。
深入JVM系列(一)之内存模型与内存分配 -
xhwahaha:
import java.util.Arrays;public ...
腾讯的一个面试题 -
j00131120:
总结的非常不错
从员工到总监,你要明白的8个道理 -
Will.Du:
这是thinking in java的例子吧
对象序列化 -
ping22changxin:
能否借你事例源码学习一下,谢谢了:812185421@qq.c ...
ActiveMQ发送ObjectMessage的一个问题
log4net使用详细介绍
Log4Net五步走
Log4Net主页: http://logging.apache.org/log4net/,下载Log4Net
Log4Net主要由Logger, Appender, Filter, Layout 4个组件构成, 一般情况下后3个组件在配置文件中配置.
1. LogNet工程引用log4net.dll
2.定义配置文件,可以配置在web.config,也可以单独配置在xml文件里面
3.双击打开AssemblyInfo.cs在最后添加
[assembly: log4net.Config.XMLConfigurator(ConfigFile = “log4net.config”, Watch = true)]
3.创建或获取日志对象
log4net.ILog log = log4net.LogManager.GetLogger(”logger-name”);
可以定义多个log对象,每个log对象分别取配置文件不同的<logger>标记,每个<logger>分别取不同的appender
这样就可以用不同的log对象把日志输出到不同的文件或者其它介质,
4.输出日志信息
log.debug()
Log4net主要由五个部分组成,分别为Logger,Appenders, Filters, Layouts 和Object Renders。
一、Logger(日志)
1. 记录日志的分类:
Log4net能够以多种方式输出日志。支持的日志输出常用的主要媒介有数据库(包括MS SQL Server, Access, Oracle9i,Oracle8i,DB2,SQLite,控制台,文件,事件日志(可以用事件查看器查看)和邮件等多种方式。
2. 日志的级别
Log4net支持多种级别的日志。优先级从高到低依次排列如下:
FATAL > ERROR > WARN > INFO > DEBUG
此外还有ALL(允许所有的日志请求)和OFF(拒绝所有的日志请求)这两种特殊的级别。
二、Appenders
Appenders决定日志输出的方式。
Appenders必须实现log4net.Appenders.IAppender接口。
Log4net目前支持的输出方式包括:
1、AdoNetAppender
将日志记录到数据库中。可以采用SQL和存储过程两种方式。
2、AnsiColorTerminalAppender
在ANSI 窗口终端写下高亮度的日志事件。
3、AspNetTraceAppender
能用asp.net中Trace的方式查看记录的日志。
4、BufferingForwardingAppender
在输出到子Appenders之前先缓存日志事件。
5、ConsoleAppender
将日志输出到控制台。
6、EventLogAppender
将日志写到Windows Event Log.
7、FileAppender
将日志写到文件中。
8、LocalSyslogAppender
将日志写到local syslog service (仅用于UNIX环境下).
9、MemoryAppender
将日志存到内存缓冲区。
10、NetSendAppender
将日志输出到Windows Messenger service.这些日志信息将在用户终端的对话框中显示。
11、RemoteSyslogAppender
通过UDP网络协议将日志写到Remote syslog service。
12、RemotingAppender
通过.NET Remoting将日志写到远程接收端。
13、RollingFileAppender
将日志以回滚文件的形式写到文件中。
14、SmtpAppender
将日志写到邮件中。
15、TraceAppender
将日志写到.NET trace 系统。
16、UdpAppender
将日志connectionless UDP datagrams的形式送到远程宿主或以UdpClient的形式广播。
三、Filters
Appender对象将日志以缺省的方式传到输出流,然后Filter可以按照不同的标准控制日志的输出。Filter可以再配置文件中配置。最简单的形式是在appender中写明一个Threshold.这样只有级别大于或等于此Threshold的日志才被记录。
Filters必须实现log4net.Filters.IFilter接口。
四、Layouts
Layouts控制日志显示的格式样式。日志的显示格式如下:
"%timestamp [%thread] %-5level %logger - %message%newline"
Timestamp: 表示程序已经开始执行的时间。 单位[毫秒]。
Thread:执行当前代码的线程。
Level:日志的级别。
Logger:日志相关请求的名称。
Message: 日志消息。
Layouts还可以控制日志的输出样式,比如以普通形式或以xml等形式输出。
五、Object Renderers
这是很重要的一项,log4net将按照用户定义的标准输出日志消息。
Object Renders必须实现log4net.ObjectRenderer.IObjectRenerer接口
Logger
负责产生日志消息,可以在代码中调用
Logger的Level属性可以设以下值,由高到低为OFF,FATAL,
ERROR,WARN,INFO,DEBUG,ALL. 高于设定值方法都能写入日志,
Off所有的写入方法都不写到日志里,ALL则相反。例如当我们设成Info时,logger.Debug就会被忽略而不写入文件,但是FATAL,
ERROR,WARN,INFO会被写入,因为他们等级高于INFO;
Appender
负责向存储介质中追加日志, 一般在配置文件中配置,根据保存日志介质的不同Appender有多种,
比如:AdoNetAppender,EventLogAppender,RollingFileAppender等.参见:
http://logging.apache.org/log4net/release/config-examples.HTML.
Filter
负责过滤日志, 一般和Appender联合使用,在配置文件中配置
Layout
负责日志消息的格式, 一般和Appender联合使用,在配置文件中配置。
----------------------------------------------------------------------
log4net标签的框架如下, 该标签下有root, logger, appender等标签
root标签
所有的logger都从root继承, root本身也是一个logger
logger标签
每个logger标签代表一个logger,appender-ref表示该logger产生的日志消息传递给哪个appender,一个logger可以把相同的消
息传递给多个appender记录
appender标签
每个appender表示一个日志的存储位置,name不能和type一样
设定参数
日志根据日期滚动
日志文件名格式为
日志文件名是否是固定不变的
layout type="log4net.Layout.PatternLayout"
日志消息的格式, 表示换行
param name=”ConversionPattern” value=”%d [%t] %-5p %c - %m%n”
param name=”Header” value=” ———————-header————————– ”
param name=”Footer” value=” ———————-footer————————– ”
%m(message):输出的日志消息,如ILog.Debug(…)输出的一条消息
%n(new line):换行
%d(datetime):输出当前语句运行的时刻
%r(run time):输出程序从运行到执行到当前语句时消耗的毫秒数
%t(thread id):当前语句所在的线程ID
%p(priority): 日志的当前优先级别,即DEBUG、INFO、WARN…等
%c(class):当前日志对象的名称
%L:输出语句所在的行号
%F:输出语句所在的文件名
%-数字:表示该项的最小长度,如果不够,则用空格填充
-------------------------------------------------------------------------------------------------------------------------------------
log4net>
<loggername="loggerAX">
<!--controlloglevel:ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF-->
<!--如果没有定义LEVEL的值,则缺省为DEBUG-->
<levelvalue="ALL"/>
<appender-refref="SmtpAppenderAX"></appender-ref>
<appender-refref="FileAppenderAX"></appender-ref>
</logger>
<appendername="SmtpAppenderAX"type="log4net.Appender.SmtpAppender">
<tovalue="AXzhz@163.com"></to>
<fromvalue="AXzhz@163.com"/>
<subjectvalue="AX'TestLogMessage"/>
<smtpHostvalue="smtp.163.com"/>
<usernamevalue="AXzhz"/>
<passwordvalue="110"/>
<bufferSizevalue="2048"/>
<!--超长部分是否丢弃-->
<lossyvalue="false"/>
<!--evaluator时好时坏,靠不住,还是用filter实在-->
<!--<evaluatortype="log4net.Core.LevelEvaluator">
<thresholdvalue="ERROR"/>
</evaluator>-->
<!--<evaluatortype="log4net.Core.LevelEvaluator,log4net">
<thresholdvalue="WARN"/>
</evaluator>-->
<!--将导致不能写日志-->
<!--<filtertype="log4net.Filter.DenyAllFilter"/>-->
<!--输出级别在WARN和OFF之间的日志-->
<filtertype="log4net.Filter.LevelRangeFilter">
<paramname="LevelMin"value="WARN"/>
<paramname="LevelMax"value="OFF"/>
</filter>
<layouttype="log4net.Layout.PatternLayout">
<conversionPatternvalue="%newline%date[%thread]%-5level%logger[%property{NDC}]:%newline%message%newline"/>
</layout>
</appender>
<appendername="FileAppenderAX"type="log4net.Appender.RollingFileAppender">
<!--绝对路径-->
<filevalue="D://AX.txt"></file>
<!--相对路径,在项目的根目录下-->
<!--以最后一个路径为准,所以上面的绝对路径下不会写日志-->
<filevalue="./Log/AX.txt"></file>
<!--防止多线程时不能写Log,官方说线程非安全-->
<!--实际使用时,本地测试正常,部署后有不能写日志的情况-->
<lockingModeltype="log4net.Appender.FileAppender+MinimalLock"/>
<appendToFilevalue="true"/>
<!--可以为:Once|Size|Date|Composite-->
<!--Composite为Size和Date的组合-->
<rollingStylevalue="composite"/>
<!--日志最大个数,都是最新的-->
<!--rollingStyle节点为Date时,该节点不起作用-->
<!--rollingStyle节点为Size时,只能有value个日志-->
<!--rollingStyle节点为Composite时,每天有value个日志-->
<maxSizeRollBackupsvalue="10"/>
<!--当备份文件时,为文件名加的后缀-->
<!--后缀为*.txt时,例:AX.txt_2008-07-24.PxP应该是程序上的一个bug-->
<!--后缀为*.TXT时,例:AX.txt_2008-07-25.TXT-->
<datePatternvalue="_yyyy-MM-dd.TXT"/>
<!--可用的单位:KB|MB|GB-->
<!--不要使用小数,否则会一直写入当前日志-->
<maximumFileSizevalue="1KB"/>
<!--置为true,当前最新日志文件名永远为file节中的名字-->
<staticLogFileNamevalue="true"/>
<!--输出级别在INFO和ERROR之间的日志-->
<filtertype="log4net.Filter.LevelRangeFilter">
<paramname="LevelMin"value="INFO"/>
<paramname="LevelMax"value="ERROR"/>
</filter>
<!--必须结合起来用,第一个只过滤出WARN,第二个拒绝其它其它日志输出-->
<filtertype="log4net.Filter.LevelMatchFilter">
<paramname="LevelToMatch"value="WARN"/>
</filter>
<filtertype="log4net.Filter.DenyAllFilter"/>
<layouttype="log4net.Layout.PatternLayout">
<conversionPatternvalue="%date[%thread]%-5level%logger[%ndc]-%message%newline"/>
</layout>
</appender>
</log4net>
<!--==================================layout节点的配置说明==================================-->
<!--MadeByAX-->
<!--%m(message):输出的日志消息,如ILog.Debug(…)输出的一条消息-->
<!--%n(newline):换行-->
<!--%d(datetime):输出当前语句运行的时刻-->
<!--%r(runtime):输出程序从运行到执行到当前语句时消耗的毫秒数-->
<!--%t(threadid):当前语句所在的线程ID-->
<!--%p(priority):日志的当前优先级别,即DEBUG、INFO、WARN…等-->
<!--%c(class):当前日志对象的名称,例如:-->
<!--模式字符串为:%-10c-%m%n-->
<!--代码为:-->
<!--ILoglog=LogManager.GetLogger(“Exam.Log”);-->
<!--log.Debug(“Hello”);-->
<!--则输出为下面的形式:-->
<!--Exam.Log-Hello-->
<!--%L:输出语句所在的行号-->
<!--%F:输出语句所在的文件名-->
<!--%-数字:表示该项的最小长度,如果不够,则用空格填充-->
<!--例如,转换模式为%r[%t]%-5p%c-%m%n的PatternLayout将生成类似于以下内容的输出:-->
<!--176[main]INFOorg.foo.Bar-Locatednearestgasstation.-->
<!---->
<!--========================================================================================-->
Ⅲ.在Default.aspx.cs的Page_Load里添加如下代码.
protectedvoidPage_Load(objectsender,EventArgse)
{
//下面两句应该放在网站刚刚启动时加载,并放在一个静态方法里方便调用
log4net.Config.XmlConfigurator.ConfigureAndWatch(newSystem.IO.FileInfo(Server.MapPath("Log4Net_AX.config")));
ILoglogAX=LogManager.GetLogger("loggerAX");
//写日志
logAX.Error("ErrorAX");
logAX.Info("InfoAX");
}
F5,在项目目录下找到Log文件夹的AX.txt ,这个就是刚刚生成的日志文件.
【写日志的原则】
Ⅰ.在catch后,把异常写入日志.
Ⅱ.在调用第三方控件的开始和结束处.
Ⅲ.在连接数据库的开始结束处.
Ⅳ.除非必要,不要在循环体中加入日志,否则一旦出问题可能导致日志暴增.
Ⅴ.在自己认为很重要的逻辑处写入日志.
【注意】
发现有重要问题时最好用邮件日志,但不要指望上面的邮件配置节能发日志.
要使用能用的smtp服务器,163的只有部分用户能
用.我的就不能用,很是郁闷.
要合理配置下列参数.
Ⅰ.日志文件的大小
Ⅱ.备份的日志名样式,最好时间精确到分---------------------------------------------------------------------------------------------------------------------------------------
因为工作中有要用到Log记录,找到一篇不错的文章,就转了过来。 一 Log4net简介 Log4net是基于.net开发的一款非常著名的记录日志开源组件。他最早是2001年7月由NeoWorks Limited启动的项目,基本的框架源于另外的一个非常著名的姐妹组件-log4j。Log4net记录日志的功能非常强大。它可以将日志分不同的等级,比不同的样式,将日志输出到不同的媒介。 Log4net可以从http://logging.apache.org/log4net/downloads.html网站下载最新版本。 二 Log4net核心组成 Log4net主要由五个部分组成,分别为Logger,Appenders, Filters, Layouts 和Object Renders。 一)Logger(日志) 1. 记录日志的分类: Log4net能够以多种方式输出日志。支持的日志输出常用的主要媒介有数据库(包括MS SQL Server, Access, Oracle9i,Oracle8i,DB2,SQLite,控制台,文件,事件日志(可以用事件查看器查看)和邮件等多种方式。 2. 日志的级别 Log4net支持多种级别的日志。优先级从高到低依次排列如下: FATAL > ERROR > WARN > INFO > DEBUG 此外还有ALL(允许所有的日志请求)和OFF(拒绝所有的日志请求)这两种特殊的级别。 二)Appenders Appenders决定日志输出的方式。 Appenders必须实现log4net.Appenders.IAppender接口。 Log4net目前支持的输出方式包括: 1 AdoNetAppender 将日志记录到数据库中。可以采用SQL和存储过程两种方式。 2 AnsiColorTerminalAppender 在ANSI 窗口终端写下高亮度的日志事件。 3 AspNetTraceAppender 能用asp.net中Trace的方式查看记录的日志。 4 BufferingForwardingAppender 在输出到子Appenders之前先缓存日志事件。 5 ConsoleAppender 将日志输出到控制台。 6 EventLogAppender 将日志写到Windows Event Log. 7 FileAppender 将日志写到文件中。 8 LocalSyslogAppender 将日志写到local syslog service (仅用于UNIX环境下). 9 MemoryAppender 将日志存到内存缓冲区。 10 NetSendAppender 将日志输出到Windows Messenger service.这些日志信息将在用户终端的对话框中显示。 11 RemoteSyslogAppender 通过UDP网络协议将日志写到Remote syslog service。 12 RemotingAppender 通过.NET Remoting将日志写到远程接收端。 13 RollingFileAppender 将日志以回滚文件的形式写到文件中。 14 SmtpAppender 将日志写到邮件中。 15 TraceAppender 将日志写到.NET trace 系统。 16 UdpAppender 将日志connectionless UDP datagrams的形式送到远程宿主或以UdpClient的形式广播。 三)Filters Appender对象将日志以缺省的方式传到输出流,然后Filter可以按照不同的标准控制日志的输出。Filter可以再配置文件中配置。最简单的形式是在appender中写明一个Threshold.这样只有级别大于或等于此Threshold的日志才被记录。 Filters必须实现log4net.Filters.IFilter接口。 四)Layouts Layouts控制日志显示的格式样式。日志的显示格式如下: "%timestamp [%thread] %-5level %logger - %message%newline" Timestamp: 表示程序已经开始执行的时间。 单位[毫秒]。 Thread:执行当前代码的线程。 Level:日志的级别。 Logger:日志相关请求的名称。 Message: 日志消息。 Layouts还可以控制日志的输出样式,比如以普通形式或以xml等形式输出。 五)Object Renderers 这是很重要的一项,log4net将按照用户定义的标准输出日志消息。 Object Renders必须实现log4net.ObjectRenderer.IObjectRenerer接口。 三 如何在项目中使用log4net 下面有个基于控制台的demo,举例描述了log4net怎么用于输出日志。 本例中,日志将会记录到文件,控制台,事件日至和Access数据库中。 一)主要代码: 1. 配置文件app.config 1<?xml version="1.0" encoding="utf-8" ?> 2<configuration> 3 <!-- Register a section handler for the log4net section --> 4 <configSections> 5 <section name="log4net" type="System.Configuration.IgnoreSectionHandler" /> 6 </configSections> 7 <appSettings> 8 <!-- To enable internal log4net logging specify the following appSettings key --> 9 <!-- <add key="log4net.Internal.Debug" value="true"/> --></appSettings> 10 <!-- This section contains the log4net configuration settings --> 11 <log4net> 12 <!--定义输出到文件中--> 13 <appender name="LogFileAppender" type="log4net.Appender.FileAppender"> 14 <!--定义文件存放位置--> 15 <file value="D:/log-file1.txt" /> 16 <!-- Example using environment variables in params --> 17 <!-- <file value="${TMP}/log-file.txt" /> --> 18 <!--<sppendToFile value="true" />--> 19 <!-- An alternate output encoding can be specified --> 20 <!-- <encoding value="unicodeFFFE" /> --> 21 <layout type="log4net.Layout.PatternLayout"> 22 <!--每条日志末尾的文字说明--> 23 <footer value="[Footer]--Test By Ring1981 " /> 24 <!--输出格式--> 25 <conversionPattern value="%date [%thread] %-5level %logger [%ndc] <%property{auth}> - %message%newline" /> 26 </layout> 27 </appender> 28 <!--定义输出到控制台命令行中--> 29 <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender"> 30 <layout type="log4net.Layout.PatternLayout"> 31 <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> 32 </layout> 33 </appender> 34 <!--定义输出到windows事件中--> 35 <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender"> 36 <layout type="log4net.Layout.PatternLayout"> 37 <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> 38 </layout> 39 </appender> 40 <!--定义输出到数据库中,这里举例输出到Access数据库中,数据库为D盘的access.mdb--> 41 <appender name="AdoNetAppender_Access" type="log4net.Appender.AdoNetAppender"> 42 <connectionString value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:/access.mdb" /> 43 <commandText value="INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message]) VALUES (@log_date, @thread, @log_level, @logger, @message)" /> 44 <!--定义各个参数--> 45 <parameter> 46 <parameterName value="@log_date" /> 47 <dbType value="String" /> 48 <size value="255" /> 49 <layout type="log4net.Layout.PatternLayout"> 50 <conversionPattern value="%date" /> 51 </layout> 52 </parameter> 53 <parameter> 54 <parameterName value="@thread" /> 55 <dbType value="String" /> 56 <size value="255" /> 57 <layout type="log4net.Layout.PatternLayout"> 58 <conversionPattern value="%thread" /> 59 </layout> 60 </parameter> 61 <parameter> 62 <parameterName value="@log_level" /> 63 <dbType value="String" /> 64 <size value="50" /> 65 <layout type="log4net.Layout.PatternLayout"> 66 <conversionPattern value="%level" /> 67 </layout> 68 </parameter> 69 <parameter> 70 <parameterName value="@logger" /> 71 <dbType value="String" /> 72 <size value="255" /> 73 <layout type="log4net.Layout.PatternLayout"> 74 <conversionPattern value="%logger" /> 75 </layout> 76 </parameter> 77 <parameter> 78 <parameterName value="@message" /> 79 <dbType value="String" /> 80 <size value="1024" /> 81 <layout type="log4net.Layout.PatternLayout"> 82 <conversionPattern value="%message" /> 83 </layout> 84 </parameter> 85 </appender> 86 <!--定义日志的输出媒介,下面定义日志以四种方式输出。也可以下面的按照一种类型或其他类型输出。--> 87 <root> 88 <appender-ref ref="LogFileAppender" /> 89 <appender-ref ref="ConsoleAppender" /> 90 <appender-ref ref="EventLogAppender" /> 91 <appender-ref ref="AdoNetAppender_Access" /> 92 </root> 93 </log4net> 94</configuration> 2. LoggingExample.cs 1// Configure log4net using the .config file 2[assembly: log4net.Config.XmlConfigurator(Watch=true)] 3// This will cause log4net to look for a configuration file 4// called ConsoleApp.exe.config in the application base 5// directory (i.e. the directory containing ConsoleApp.exe) 6 7namespace ConsoleApp 8{ 9 using System; 10 11 /**//// <summary> 12 /// Example of how to simply configure and use log4net 13 /// </summary> 14 public class LoggingExample 15 { 16 private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); 17 18 public static void Main(string[] args) 19 { 20 log.Error("Error Acc"); 21 log.Fatal("Fatle Acc"); 22 System.Console.ReadLine(); 23 24 } 25 26 } 27} 28 运行程序,日志就会以xml中定义的四种媒介形式输出。 场景:我想用log4net输出两个log文件,一个文件输出所有的log,例如debug,info,warn,error,fatal全部输出, 另外一个log文件只输出error级别的log。 困扰了一段时间,开始还以为没有这样的功能,仔细看log4.net的文档发现是可以的。 其他地方省略了,重点看红色标出部分。这样的话同一个地方写入LOG,就会根据不同的级别输出到不同的文件中。 下面是配置文件 <log4net> <root> <levelvalue="DEBUG"/> <appender-refref="RollingFileAppender"/> <appender-refref="ErrorRollingFileAppender"/> </root> <appendername="RollingFileAppender"type="log4net.Appender.RollingFileAppender"> <filevalue="c:/log.txt"/> <appendToFilevalue="true"/> <rollingStylevalue="Size"/> <maxSizeRollBackupsvalue="10"/> <maximumFileSizevalue="100KB"/> <staticLogFileNamevalue="true"/> <layouttype="log4net.Layout.PatternLayout"> <conversionPatternvalue="%date[%thread]%-5level[%rmsused]-%message%newline"/> </layout> </appender> <appendername="ErrorRollingFileAppender"type="log4net.Appender.RollingFileAppender"LEVEL="ERROR"> <filevalue="c:/errorlog.txt"/> <appendToFilevalue="true"/> <rollingStylevalue="Size"/> <maxSizeRollBackupsvalue="10"/> <maximumFileSizevalue="1024KB"/> <staticLogFileNamevalue="true"/> <layouttype="log4net.Layout.PatternLayout"> <conversionPatternvalue="%date[%thread]%-5level[%logger][%property{NDC}]-%message%newline"/> </layout> <filtertype="log4net.Filter.LevelRangeFilter"> <paramname="LevelMin"value="ERROR"/> <paramname="LevelMax"value="ERROR"/> </filter> </appender> </log4net> |
相关推荐
本文主要是介绍如何在Visual Studio2008中使用log4net快速创建系统日志,如何扩展以输出自定义字段。 2、一个简单的使用实例 第一步:在项目中添加对log4net.dll的引用,这里引用版本是1.2.10.0。 第二步:程序启动...
Log4net使用源代码 详细介绍log4net配置以及调用
Log4NET的使用。
1.该笔记中详细的介绍了log4j的作用和优势、具体地讲解了log4j的使用步骤和详细配置。 2.深入的说明了log4j在项目中的重要地位以及给项目带来的影响,同时说明了log4j的优化。 3.该笔记从log4j的简介/入门开始介绍,到...
log4net是.Net下一个非常优秀的开源日志记录组件。log4net记录日志的功能非常强大。它可以将日志分不同的等级,以...本文主要是介绍如何在Visual Studio2008中使用log4net快速创建系统日志,如何扩展以输出自定义字段。
详细介绍Log4j使用实例
很详细的介绍了log4j的使用方法和用例 很详细的介绍了log4j的使用方法和用例 很详细的介绍了log4j的使用方法和用例
log4j的详细使用,附带例子! 很好的使用例子
关于配置文件的名称以及在项目中的存放位置 log4j 2.x版本不再支持像1.x中的....如果本地要测试,可以把log4j2-test.xml放到classpath,而正式环境使用log4j2.xml,则在打包部署的时候不要打包log4j2-test.xml即可。
本文详细的介绍了Log4cpp的各种用法,包括编译、应用、配置。同时,作者提供了自己的定制版本,增强了Log4cpp的功能。也提供了Demo与二次封装的“简易”类。文章末属提供了相关源码的下载地址。 本文编写时间略显...
Log4j使用教程.pdf,详细介绍了log4j的使用方法和配置
Log4Net配置文件注释详细介绍了常用Log4Net的强大功能,并生成对应的接口类(Log4NetHelper),方便用户使用; 对应框架是.Net 4.5.1,测试代码可以运行,生成的Log文件在Exe同一个目录下。
log4j是一个非常强大的log记录软件,讲解在项目中如何使log4j。
详细介绍了log4j的使用方法,介绍了java中日志记录如何写入数据库,对于初学者来说很不错的一个文档
Log4net是一个很好的打印日志的工作,里面有比较详细的介绍,都是从网上搜积到的
log4jxml 详细介绍 和 对比举例!
本文介绍了log4cplus基本概念,以及如何安装,配置,下一篇将通过例子介绍如何使用log4cplus。 (二) 本文介绍了使用log4cplus有六个步骤,并提供了一些例子引导你了解log4cplus的基本使用。 ### 基本使用 ###...
完整分析了log4cpp的整体架构,详细介绍了log4cpp的这个重要组件的实现分析了log4cpp内部所使用的设计模式。介绍了log4cpp中的Category的完整实现细节,介绍了所有的Layout及其子类的具体实现。也详细介绍了比较常用...
简单的说log4j就是帮助开发人员进行日志输出管理的API类库。它最重要的特点就 可以配置文件灵活的设置日志信息的优先级、日志信息的输出目的地以及日志信息的输出格式。
文件里面详细的介绍了log4的配置,不过这只是配置的介绍没有关于log4的介绍