log4j配置文件详解|log4j在java的web项目中怎么用的如何配置等等

⑴ log4j文件配置的属性有哪些

###setloglevels###log=/home/allen/workspace/logslog4j.rootLogger=debug,stdout,D,Elog4j.logger.simple=DEBUG,simple,simplestdoutlog4j.additivity.simple=falselog4j.logger.DBL=DEBUG,simplestdout,DBLlog4j.additivity.DBL=falselog4j.logger.HtmlL=DEBUG,simplestdout,HtmlLlog4j.additivity.HtmlL=falselog4j.logger.socket=DEBUG,simplestdout,socketlog4j.additivity.socket=falselog4j.logger.MAIL=debug,simplestdout,MAILlog4j.additivity.MAIL=falselog4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.Target=System.outlog4j.appender.stdout.ImmediateFlush=truelog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-ddHH:mm:ss,SSS}[%-5p]method:%l-%m%nlog4j.appender.D=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.D.File=${log}/log.loglog4j.appender.D.Append=truelog4j.appender.D.Threshold=DEBUGlog4j.appender.D.DatePattern='.'yyyy-MM-ddlog4j.appender.D.layout=org.apache.log4j.PatternLayoutlog4j.appender.D.layout.ConversionPattern=%-d{yyyy-MM-ddHH:mm:ss}[%-5p][%l]-%m%nlog4j.appender.E=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.E.File=${log}/error.loglog4j.appender.E.Append=truelog4j.appender.E.Threshold=ERRORlog4j.appender.E.DatePattern='.'yyyy-MM-ddlog4j.appender.E.layout=org.apache.log4j.PatternLayoutlog4j.appender.E.layout.ConversionPattern=%-d{yyyy-MM-ddHH:mm:ss}[%-5p][%l]-%m%nlog4j.appender.simplestdout=org.apache.log4j.ConsoleAppenderlog4j.appender.simplestdout.Target=System.outlog4j.appender.simplestdout.ImmediateFlush=truelog4j.appender.simplestdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.simplestdout.layout.ConversionPattern=%d{yyyy-MM-ddHH:mm:ss,SSS}[%-5p]-%m%nlog4j.appender.simple=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.simple.File=${log}/log.loglog4j.appender.simple.Append=truelog4j.appender.simple.Threshold=DEBUGlog4j.appender.simple.DatePattern='.'yyyy-MM-ddlog4j.appender.simple.layout=org.apache.log4j.PatternLayoutlog4j.appender.simple.layout.ConversionPattern=%-d{yyyy-MM-ddHH:mm:ss}[%-5p][simple]-%m%n#DefinetheDBappenderlog4j.appender.DBL=org.apache.log4j.jdbc.JDBCAppender#SetJDBCURLlog4j.appender.DBL.URL=jdbc:mysql://localhost:3306/test#SetDatabaseDriverlog4j.appender.DBL.driver=com.mysql.jdbc.Driver#log4j.appender.DBL.user=rootlog4j.appender.DBL.password=123456#.log4j.appender.DBL.sql=INSERTINTOLOGSVALUES('%x','%d{yyyy-MM-ddHH:mm:ss}','%C','%M(%F:%L)','%p','%m')#log4j.appender.DBL.layout=org.apache.log4j.PatternLayout#DefinetheHtmlLappenderlog4j.appender.HtmlL=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.HtmlL.File=${log}/log.htmllog4j.appender.HtmlL.Append=truelog4j.appender.HtmlL.Threshold=DEBUGlog4j.appender.HtmlL.DatePattern='.'yyyy-MM-ddlog4j.appender.HtmlL.layout=org.apache.log4j.HTMLLayoutlog4j.appender.HtmlL.layout.Title=HTMLLayoutLoglog4j.appender.HtmlL.layout.LocationInfo=true#socketlog4j.appender.socket=org.apache.log4j.net.SocketAppenderlog4j.appender.socket.RemoteHost=localhostlog4j.appender.socket.Port=8080log4j.appender.socket.LocationInfo=truelog4j.appender.socket.layout=org.apache.log4j.PatternLayoutlog4j.appender.socket.layout.ConversionPattern=[%-5p]%d(%r)–>[%t]%l:%m%x%n#########################SMTPAppender#######################log4j.appender.MAIL=org.apache.log4j.net.SMTPAppenderlog4j.appender.MAIL.Threshold=debuglog4j.appender.MAIL.BufferSize=10log4j.appender.MAIL.SMTPDebug=truelog4j.appender.MAIL.From=log4j.appender.MAIL.SMTPUsername=log4j.appender.MAIL.SMTPPassword=log4j.appender.MAIL.SMTPHost=log4j.appender.MAIL.SMTPPort=25log4j.appender.MAIL.Subject=Log4JMessagelog4j.appender.MAIL.To=log4j.appender.MAIL.SMTPProtocol=smtplog4j.appender.MAIL.layout=org.apache.log4j.PatternLayoutlog4j.appender.MAIL.layout.ConversionPattern=[u9519u8BEFu65E5u5FD7]%d-%c-%-4r[%t]%-5p%c%x-%m%n

⑵ 如何编写log4j.properties文件,配置日志信息

第一步:在工程中加入log4j所使用的jar文件1:项目 > 属性 :弹出项目的属性窗口2:java构建路径>?库>?添加外部JAR:弹出选择JAR的窗口3:通过选择JAR的窗口,找到log4j-1.2.x.jar,并确认4:回到项目的属性窗口,点击确定第二步:创建log4j.properties文件1:选择欲使用log4j的项目>?右键点击src >?新建>?其他 :弹出选择向导窗口2:在选择向导窗口中,选择常规?> 文件?> 下一步:弹出新建文件的窗口3:在新建文件窗口中,输入文件名log4j.properties ? 完成:创建工作结束第三步:使用log4j记录日志信息import org.apache.log4j.Logger;public class Log4j { public static void main(String[] args) { Logger logger = Logger.getLogger(AccpTeacherLog4j.class.getName());//获取日志记录器,这个记录器将负责控制日志信息 try { logger.debug("设置教员的编号。");//使用Logger对象的debug、info方法输出日志信息 } catch (IllegalArgumentException ex) { logger.info(ex.getMessage());//使用Logger对象的debug、info方法输出日志信息 } }}第四步:编写log4j.properties文件,配置日志信息### 把日志信息输出到控制台 ###log4j.appender.stdout=org.apache.log4j.ConsoleAppender//日志信息将写到控制台log4j.appender.stdout.Target=System.out//信息打印到System.out上 log4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %m%n//指定输出格式:显示日期和log信息 ### 把日志信息输出到文件:accp.log ###log4j.appender.file=org.apache.log4j.FileAppender//日志信息将写到文件中 log4j.appender.file.File=accp.log//指定日志输出的文件名 log4j.appender.file.layout=org.apache.log4j.PatternLayoutlog4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %l %m%n//指定输出格式:显示日期,日志发生位置和日志信息### 设置优先级别、以及输出源 ###log4j.rootLogger=debug, stdout, file//设置优先级别为debug、日志被输出到多个输出源注:优先级从高到低分别是ERROR、WARN、INFO、DEBUG在此处,如果优先级别设为info,那么使用debug方法打印的日志信息将不被输出

⑶ log4j在java的web项目中怎么用的,如何配置等等。。

在web.xml中添加配置:<!– 配置log4j配置文件的路径,可以是xml或 properties(此参数必须配)–> 下面使用了内classpath 参数指定log4j.properties文件的位置容,这样log4j的配置文件就不用非要放到src的下面:<context-param> <param-name>log4jConfigLocation</param-name> <param-value>classpath:config/log4j/log4j.properties</param-value></context-param> 使用spring的监听器,当应用启动时来读取log4j的配置文件<listener><listener-class>org.springframework.web.util.Log4jConfigListener</listener-class></listener>

⑷ 如何配置log4j 实现对增删改的记录

您Log4j支持两种配置文件格式种XML格式文件种properties格式文件面我介绍使用properties格式做配置文件: 示例: log4j.rootLogger=INFO, A1 log4j.appender.A1=org.apache.log4j.ConsoleAppender log4j.appender.A1.layout=org.apache.log4j.PatternLayout log4j.appender.A1.layout.ConversionPattern=%-4r %-5p [%t] %37c %3x – %m%n 1. 配置根Logger其语:log4j.rootLogger = [ level ] , appenderName, appenderName, … 其level 志记录优先级OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义级别Log4j建议使用四级别优先级高低别ERROR、WARN、INFO、DEBUG通定义级别您控制应用程序相应级别志信息关比定义INFO级别则应用程序所DEBUG级别志信息打印 appenderName指定志信息输哪您同指定输目 2. 配置志信息输目Appender其语:log4j.appender.appenderName = fully.qualified.name.of.appender.class log4j.appender.appenderName.option1 = value1 … log4j.appender.appenderName.option = valueN 其Log4j提供appender几种: org.apache.log4j.ConsoleAppender(控制台) org.apache.log4j.FileAppender(文件) org.apache.log4j.DailyRollingFileAppender(每产志文件) org.apache.log4j.RollingFileAppender(文件达指定尺寸候产新文件) org.apache.log4j.WriterAppender(志信息流格式发送任意指定) (1).ConsoleAppender选项 Threshold=WARN:指定志消息输低层 ImmediateFlush=true:默认值true,意谓着所消息都立即输 Target=System.err:默认情况:System.out,指定输控制台 (2).FileAppender 选项 Threshold=WARN:指定志消息输低层 ImmediateFlush=true:默认值true,意谓着所消息都立即输 File=mylog.txt:指定消息输mylog.txt文件 Append=false:默认值true,即消息增加指定文件false指消息覆盖指定文件内容 (3).DailyRollingFileAppender 选项 Threshold=WARN:指定志消息输低层 ImmediateFlush=true:默认值true,意谓着所消息都立即输 File=mylog.txt:指定消息输mylog.txt文件 Append=false:默认值true,即消息增加指定文件false指消息覆盖指定文件内容 DatePattern=’.'yyyy-ww:每周滚文件即每周产新文件指定按月、周、、即应格式: 1)’.'yyyy-MM: 每月 2)’.'yyyy-ww: 每周 3)’.'yyyy-MM-dd: 每 4)’.'yyyy-MM-dd-a: 每两 5)’.'yyyy-MM-dd-HH: 每 6)’.'yyyy-MM-dd-HH-mm: 每钟 (4).RollingFileAppender 选项 Threshold=WARN:指定志消息输低层 ImmediateFlush=true:默认值true,意谓着所消息都立即输 File=mylog.txt:指定消息输mylog.txt文件 Append=false:默认值true,即消息增加指定文件false指消息覆盖指定文件内容 MaxFileSize=100KB: 缀KB, MB 或者 GB. 志文件达该自滚即原内容移mylog.log.1文件 MaxBackupIndex=2:指定产滚文件数 3. 配置志信息布局其语:log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class log4j.appender.appenderName.layout.option1 = value1 … log4j.appender.appenderName.layout.option = valueN 其Log4j提供layout几种: org.apache.log4j.HTMLLayout(HTML表格形式布局) org.apache.log4j.PatternLayout(灵指定布局模式) org.apache.log4j.SimpleLayout(包含志信息级别信息字符串) org.apache.log4j.TTCCLayout(包含志产间、线程、类别等等信息) 4、输格式设置配置文件通log4j.appender.A1.layout.ConversionPattern设置志输格式 参数: %p: 输志信息优先级即DEBUGINFOWARNERRORFATAL, %d: 输志间点期或间默认格式ISO8601其指定格式比:%d{yyy MMM dd HH:mm:ss,SSS}输类似:200210月18 22:10:28921 %r: 输自应用启输该log信息耗费毫秒数 %c: 输志信息所属类目通所类全名 %t: 输产该志事件线程名 %l: 输志事件发位置相于%C.%M(%F:%L)组合,包括类目名、发线程及代码行数举例:Testlog4.main(TestLog4.java:10) %x: 输前线程相关联NDC(嵌套诊断环境),尤其用像java servlets客户线程应用 %%: 输%字符 %F: 输志消息产所文件名称 %L: 输代码行号 %m: 输代码指定消息,产志具体信息 %n: 输车换行符Windows平台\r\nUnix平台\n输志信息换行 %与模式字符间加修饰符控制其宽度、宽度、文本齐式: 1)%20c:指定输category名称宽度20category名称于20默认情况右齐 2)%-20c:指定输category名称宽度20category名称于20-号指定左齐 3)%.30c:指定输category名称宽度30category名称于30左边字符截掉于30空格 4)%20.30c:category名称于20补空格并且右齐其名称于30字符左边交远销字符截掉 三、程序使用程序使用Log4j前首先要commons-logging.jarlogging-log4j-1.2.9.jar导入classpath并log4j.properties放于src根目录接使用 1.记录器使用Log4j第步获取志记录器记录器负责控制志信息其语: public static Logger getLogger( String name) 通指定名字获记录器必要则名字创建新记录器Name般取本类名字比: static Logger logger = Logger.getLogger ( ServerWithLog4j.class.getName () ) ; 注:推荐使用commons-logging结合log4j进行志记录 private static Log logger = LogFactory.getLog(Yourclass.class);2.插入记录信息(格式化志信息)两必要步骤执行完毕您轻松使用同优先级别志记录语句插入您想记录志任何其语: Logger.debug ( Object message ) ; Logger.info ( Object message ) ; Logger.warn ( Object message ) ; Logger.error ( Object message ) ; 四、Log4j比较全面配置LOG4J配置简单使遍及于越越应用:Log4J配置文件实现输控制台、文件、滚文件、发送志邮件、输数据库志表、自定义标签等全套功能择其二使用够用

⑸ 浅谈Log4j和Log4j2的区别

1.配置文件类型 log4j是通过一个.properties的文件作为主配置文件的,而现在的log4j 2则已经弃用了这种方式,采用的是.xml,.json或者.jsn这种方式来做,可能这也是技术发展的一个必然性,毕竟properties文件的可阅读性真的是有点差。2.核心JAR包 大家发现没,log4j和log4j 2的包路径是不同的,Apache为了区分,包路径都更新了,这样大家甚至可以在一个项目中使用2个版本的日志输出哦!(不过我想你们没有那么调皮吧,嘿嘿)3.文件渲染 log4j想要生效,我们需要在web.xml中进行配置,这段配置目的在于告诉工程去哪加载log4j的配置文件和定义一个扫描器,这样可以随心所欲的放置log4j配置文件。 log4j2就比较简单,以maven工程为例,我们只需要把log4j2.xml放到工程resource目录下就行了。大家记住一个细节点,是log4j2.xml,而不是log4j.xml,xml名字少个2都不行!!喜欢做学问的小伙伴,有兴趣可以去研究下,照我估计应该是在log4j2的包里面配置死了,而且大家可以尝试下怎么自定义log4j2.xml的位置。4.Log调用 log4j和log4j2调用都是很简单的。 5.配置文件方式 最关键的最大的不同,那就是配置文件的区别了,大家具体使用的时候再根据你的情况进行配置就行了。

⑹ log4j 一个线程记录一个日志如何配置

log4j.rootLogger 是配置log4j的根logger 具体配置方法请看下面代码 log4j.properties配置文件讲解如下: # Set root logger level to DEBUG and its only appender to A1 #log4j中有五级logger #FATAL 0 #ERROR 3 #WARN 4 #INFO 6 #DEBUG 7 配置根Logger,其语法为: #log4j.rootLogger = [ level ] , appenderName, appenderName, … log4j.rootLogger=INFO, A1 ,R #这一句设置以为着所有的log都输出 #如果为log4j.rootLogger=WARN, 则意味着只有WARN,ERROR,FATAL #被输出,DEBUG,INFO将被屏蔽掉. # A1 is set to be a ConsoleAppender. #log4j中Appender有几层如控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等 #ConsoleAppender输出到控制台 log4j.appender.A1=org.apache.log4j.ConsoleAppender # A1 使用的输出布局,其中log4j提供4种布局. org.apache.log4j.HTMLLayout(以HTML表格形式布局) #org.apache.log4j.PatternLayout(可以灵活地指定布局模式), #org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串), #org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息) log4j.appender.A1.layout=org.apache.log4j.PatternLayout #灵活定义输出格式 具体查看log4j javadoc org.apache.log4j.PatternLayout #d 时间 …. log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n #R 输出到文件 RollingFileAppender的扩展,可以提供一种日志的备份功能。 log4j.appender.R=org.apache.log4j.RollingFileAppender #日志文件的名称 log4j.appender.R.File=log4j.log #日志文件的大小 log4j.appender.R.MaxFileSize=100KB # 保存一个备份文件 log4j.appender.R.MaxBackupIndex=1 log4j.appender.R.layout=org.apache.log4j.TTCCLayout #log4j.appender.R.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n 配置根Logger,其语法为: log4j.rootLogger = [ level ] , appenderName, appenderName, … level 是日志记录的优先级 appenderName就是指定日志信息输出到哪个地方。您可以同时指定多个输出目的地。 配置日志信息输出目的地Appender,其语法为 log4j.appender.appenderName = fully.qualified.name.of.appender.class log4j.appender.appenderName.option1 = value1 … log4j.appender.appenderName.option = valueN Log4j提供的appender有以下几种: org.apache.log4j.ConsoleAppender(控制台), org.apache.log4j.FileAppender(文件), org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件), org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件), org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方) 配置日志信息的格式(布局),其语法为: log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class log4j.appender.appenderName.layout.option1 = value1 …. log4j.appender.appenderName.layout.option = valueN Log4j提供的layout有以下几种: org.apache.log4j.HTMLLayout(以HTML表格形式布局), org.apache.log4j.PatternLayout(可以灵活地指定布局模式), org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串), org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

⑺ 如何设置和使用log

一、Log4j简介Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局)。这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出。综合使用这三个组件可以轻松地记录信息的类型和级别,并可以在运行时控制日志输出的样式和位置。1、LoggersLoggers组件在此系统中被分为五个级别:DEBUG、INFO、WARN、ERROR和FATAL。这五个级别是有顺序的,DEBUG < INFO < WARN < ERROR < FATAL,分别用来指定这条日志信息的重要程度,明白这一点很重要,Log4j有一个规则:只输出级别不低于设定级别的日志信息,假设Loggers级别设定为INFO,则INFO、WARN、ERROR和FATAL级别的日志信息都会输出,而级别比INFO低的DEBUG则不会输出。2、Appenders禁用和使用日志请求只是Log4j的基本功能,Log4j日志系统还提供许多强大的功能,比如允许把日志输出到不同的地方,如控制台(Console)、文件(Files)等,可以根据天数或者文件大小产生新的文件,可以以流的形式发送到其它地方等等。常使用的类如下:org.apache.log4j.ConsoleAppender(控制台)org.apache.log4j.FileAppender(文件)org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)配置模式:log4j.appender.appenderName = classNamelog4j.appender.appenderName.Option1 = value1…log4j.appender.appenderName.OptionN = valueN3、Layouts有时用户希望根据自己的喜好格式化自己的日志输出,Log4j可以在Appenders的后面附加Layouts来完成这个功能。Layouts提供四种日志输出样式,如根据HTML样式、自由指定样式、包含日志级别与信息的样式和包含日志时间、线程、类别等信息的样式。常使用的类如下:org.apache.log4j.HTMLLayout(以HTML表格形式布局)org.apache.log4j.PatternLayout(可以灵活地指定布局模式)org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等信息)配置模式:log4j.appender.appenderName.layout =classNamelog4j.appender.appenderName.layout.Option1 = value1…log4j.appender.appenderName.layout.OptionN = valueN二、配置详解在实际应用中,要使Log4j在系统中运行须事先设定配置文件。配置文件事实上也就是对Logger、Appender及Layout进行相应设定。Log4j支持两种配置文件格式,一种是XML格式的文件,一种是properties属性文件。下面以properties属性文件为例介绍log4j.properties的配置。1、配置根Logger:log4j.rootLogger = [ level ] , appenderName1, appenderName2, …log4j.additivity.org.apache=false:表示Logger不会在父Logger的appender里输出,默认为true。level :设定日志记录的最低级别,可设的值有OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者自定义的级别,Log4j建议只使用中间四个级别。通过在这里设定级别,您可以控制应用程序中相应级别的日志信息的开关,比如在这里设定了INFO级别,则应用程序中所有DEBUG级别的日志信息将不会被打印出来。appenderName:就是指定日志信息要输出到哪里。可以同时指定多个输出目的地,用逗号隔开。例如:log4j.rootLogger=INFO,A1,B2,C32、配置日志信息输出目的地(appender):log4j.appender.appenderName = classNameappenderName:自定义appderName,在log4j.rootLogger设置中使用;className:可设值如下:(1)org.apache.log4j.ConsoleAppender(控制台)(2)org.apache.log4j.FileAppender(文件)(3)org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)(4)org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)(5)org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)(1)ConsoleAppender选项:Threshold=WARN:指定日志信息的最低输出级别,默认为DEBUG。ImmediateFlush=true:表示所有消息都会被立即输出,设为false则不输出,默认值是true。Target=System.err:默认值是System.out。(2)FileAppender选项:Threshold=WARN:指定日志信息的最低输出级别,默认为DEBUG。ImmediateFlush=true:表示所有消息都会被立即输出,设为false则不输出,默认值是true。Append=false:true表示消息增加到指定文件中,false则将消息覆盖指定的文件内容,默认值是true。File=D:/logs/logging.log4j:指定消息输出到logging.log4j文件中。(3)DailyRollingFileAppender选项:Threshold=WARN:指定日志信息的最低输出级别,默认为DEBUG。ImmediateFlush=true:表示所有消息都会被立即输出,设为false则不输出,默认值是true。Append=false:true表示消息增加到指定文件中,false则将消息覆盖指定的文件内容,默认值是true。File=D:/logs/logging.log4j:指定当前消息输出到logging.log4j文件中。DatePattern='.'yyyy-MM:每月滚动一次日志文件,即每月产生一个新的日志文件。当前月的日志文件名为logging.log4j,前一个月的日志文件名为logging.log4j.yyyy-MM。另外,也可以指定按周、天、时、分等来滚动日志文件,对应的格式如下:1)'.'yyyy-MM:每月2)'.'yyyy-ww:每周3)'.'yyyy-MM-dd:每天4)'.'yyyy-MM-dd-a:每天两次5)'.'yyyy-MM-dd-HH:每小时6)'.'yyyy-MM-dd-HH-mm:每分钟(4)RollingFileAppender选项:Threshold=WARN:指定日志信息的最低输出级别,默认为DEBUG。ImmediateFlush=true:表示所有消息都会被立即输出,设为false则不输出,默认值是true。Append=false:true表示消息增加到指定文件中,false则将消息覆盖指定的文件内容,默认值是true。File=D:/logs/logging.log4j:指定消息输出到logging.log4j文件中。MaxFileSize=100KB:后缀可以是KB, MB 或者GB。在日志文件到达该大小时,将会自动滚动,即将原来的内容移到logging.log4j.1文件中。MaxBackupIndex=2:指定可以产生的滚动文件的最大数,例如,设为2则可以产生logging.log4j.1,logging.log4j.2两个滚动文件和一个logging.log4j文件。3、配置日志信息的输出格式(Layout):log4j.appender.appenderName.layout=classNameclassName:可设值如下:(1)org.apache.log4j.HTMLLayout(以HTML表格形式布局)(2)org.apache.log4j.PatternLayout(可以灵活地指定布局模式)(3)org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)(4)org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)(1)HTMLLayout选项:LocationInfo=true:输出java文件名称和行号,默认值是false。Title=My Logging: 默认值是Log4J Log Messages。(2)PatternLayout选项:ConversionPattern=%m%n:设定以怎样的格式显示消息。格式化符号说明:%p:输出日志信息的优先级,即DEBUG,INFO,WARN,ERROR,FATAL。%d:输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,如:%d{yyyy/MM/dd HH:mm:ss,SSS}。%r:输出自应用程序启动到输出该log信息耗费的毫秒数。%t:输出产生该日志事件的线程名。%l:输出日志事件的发生位置,相当于%c.%M(%F:%L)的组合,包括类全名、方法、文件名以及在代码中的行数。例如:test.TestLog4j.main(TestLog4j.java:10)。%c:输出日志信息所属的类目,通常就是所在类的全名。%M:输出产生日志信息的方法名。%F:输出日志消息产生时所在的文件名称。%L::输出代码中的行号。%m::输出代码中指定的具体日志信息。%n:输出一个回车换行符,Windows平台为"\r\n",Unix平台为"\n"。%x:输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中。%%:输出一个"%"字符。另外,还可以在%与格式字符之间加上修饰符来控制其最小长度、最大长度、和文本的对齐方式。如:1) c:指定输出category的名称,最小的长度是20,如果category的名称长度小于20的话,默认的情况下右对齐。2)%-20c:"-"号表示左对齐。3)%.30c:指定输出category的名称,最大的长度是30,如果category的名称长度大于30的话,就会将左边多出的字符截掉,但小于30的话也不会补空格。附:Log4j比较全面的配置Log4j配置文件实现了输出到控制台、文件、回滚文件、发送日志邮件、输出到数据库日志表、自定义标签等全套功能。log4j.rootLogger=DEBUG,console,dailyFile,imlog4j.additivity.org.apache=true# 控制台(console)log4j.appender.console=org.apache.log4j.ConsoleAppenderlog4j.appender.console.Threshold=DEBUGlog4j.appender.console.ImmediateFlush=truelog4j.appender.console.Target=System.errlog4j.appender.console.layout=org.apache.log4j.PatternLayoutlog4j.appender.console.layout.ConversionPattern=[%-5p] %d(%r) –> [%t] %l: %m %x %n# 日志文件(logFile)log4j.appender.logFile=org.apache.log4j.FileAppenderlog4j.appender.logFile.Threshold=DEBUGlog4j.appender.logFile.ImmediateFlush=truelog4j.appender.logFile.Append=truelog4j.appender.logFile.File=D:/logs/log.log4jlog4j.appender.logFile.layout=org.apache.log4j.PatternLayoutlog4j.appender.logFile.layout.ConversionPattern=[%-5p] %d(%r) –> [%t] %l: %m %x %n# 回滚文件(rollingFile)log4j.appender.rollingFile=org.apache.log4j.RollingFileAppenderlog4j.appender.rollingFile.Threshold=DEBUGlog4j.appender.rollingFile.ImmediateFlush=truelog4j.appender.rollingFile.Append=truelog4j.appender.rollingFile.File=D:/logs/log.log4jlog4j.appender.rollingFile.MaxFileSize=200KBlog4j.appender.rollingFile.MaxBackupIndex=50log4j.appender.rollingFile.layout=org.apache.log4j.PatternLayoutlog4j.appender.rollingFile.layout.ConversionPattern=[%-5p] %d(%r) –> [%t] %l: %m %x %n# 定期回滚日志文件(dailyFile)log4j.appender.dailyFile=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.dailyFile.Threshold=DEBUGlog4j.appender.dailyFile.ImmediateFlush=truelog4j.appender.dailyFile.Append=truelog4j.appender.dailyFile.File=D:/logs/log.log4jlog4j.appender.dailyFile.DatePattern='.'yyyy-MM-ddlog4j.appender.dailyFile.layout=org.apache.log4j.PatternLayoutlog4j.appender.dailyFile.layout.ConversionPattern=[%-5p] %d(%r) –> [%t] %l: %m %x %n# 应用于socketlog4j.appender.socket=org.apache.log4j.RollingFileAppenderlog4j.appender.socket.RemoteHost=localhostlog4j.appender.socket.Port=5001log4j.appender.socket.LocationInfo=true# Set up for Log Factor 5log4j.appender.socket.layout=org.apache.log4j.PatternLayoutlog4j.appender.socket.layout.ConversionPattern=[%-5p] %d(%r) –> [%t] %l: %m %x %n# Log Factor 5 Appenderlog4j.appender.LF5_APPENDER=org.apache.log4j.lf5.LF5Appenderlog4j.appender.LF5_APPENDER.MaxNumberOfRecords=2000# 发送日志到指定邮件log4j.appender.mail=org.apache.log4j.net.SMTPAppenderlog4j.appender.mail.Threshold=FATALlog4j.appender.mail.BufferSize=10log4j.appender.mail.From = [email protected]log4j.appender.mail.SMTPHost=mail.comlog4j.appender.mail.Subject=Log4J Messagelog4j.appender.mail.To= [email protected]log4j.appender.mail.layout=org.apache.log4j.PatternLayoutlog4j.appender.mail.layout.ConversionPattern=[%-5p] %d(%r) –> [%t] %l: %m %x %n# 应用于数据库log4j.appender.database=org.apache.log4j.jdbc.JDBCAppenderlog4j.appender.database.URL=jdbc:mysql://localhost:3306/testlog4j.appender.database.driver=com.mysql.jdbc.Driverlog4j.appender.database.user=rootlog4j.appender.database.password=log4j.appender.database.sql=INSERT INTO LOG4J (Message) VALUES('=[%-5p] %d(%r) –> [%t] %l: %m %x %n')log4j.appender.database.layout=org.apache.log4j.PatternLayoutlog4j.appender.database.layout.ConversionPattern=[%-5p] %d(%r) –> [%t] %l: %m %x %n# 自定义Appenderlog4j.appender.im = net.cybercorlin.util.logger.appender.IMAppenderlog4j.appender.im.host = mail.cybercorlin.netlog4j.appender.im.username = usernamelog4j.appender.im.password = passwordlog4j.appender.im.recipient = [email protected]log4j.appender.im.layout=org.apache.log4j.PatternLayoutlog4j.appender.im.layout.ConversionPattern=[%-5p] %d(%r) –> [%t] %l: %m %x %n

⑻ java 中 log4j 的概念、作用以及如何使用

Log4j实在是很熟悉,几乎所有的Java项目都用它啊。但是我确一直没有 搞明白。终于有一天我受不了了,定下心去看了一把文档,才两个小时,我终于搞明白了。一般情况下Log4j总是和Apache Commons-logging一起用的,我也就一起介绍吧。多了个东西不是更麻烦,而是更简单!一、Log4j的简单思想Log4j真的很简单,简单到令人发指的地步。不是要记录日志吗?那就给你一个Log,然后你用Log来写东西就行了,先来一个完整类示例:packagetest;importorg.apache.commons.logging.Log;importorg.apache.commons.logging.LogFactory;publicclass Test { static Log log = LogFactory.getLog(Test.class); public void log(){ log.debug("Debug info."); log.info("Info info"); log.warn("Warn info"); log.error("Error info"); log.fatal("Fatal info"); } /** * @param args */ public static void main(String[] args) { Test test = new Test(); test.log(); }}别怕,看完这篇文章你就会觉得很简单了。 Log4j默认把日志信息分为五个等级 debug < info < warn < error < fatal虽然可以自己添加等级,但是我觉得没有必要,五个够用了吧!你要写入信息的时候就把信息归为五个等级中的一个,然后调用相应的函数即可。 分五个等级到底有什么用呢?日志信息到底写到哪里去了? “LogFactory.getLog(Test.class)”又是什么意思捏?接着往下看吧!Log4j的关键之处在于它的继承思想。也就是一个Log可以继承另外一个Log的属性(输出到哪里,日志等级,日志格式等等)。怎么继承?Log4j是根据Log的名字来判断继承关系的,比如:名字为“com.zhlmmc.lib”的Log就是“com.zhlmmc.lib.log”的parent,明白了吧!Log4j还有一个rootLogger,相当于Java的Object。回过头来看“LogFactory.getLog(Test.class)”这里的“Test.class”事实上传进去的是Test这个类的完整路径(包名+类名),“test.Test”。这样如果存在“test”这个Log 那么Test这个Log就继承它,否则就继承rootLogger。 那具体的Log属性是在哪里定义的呢?二、常见的配置文件虽然可以用xml或者在运行时用Java来配置Log4j,但还是properties文件好用啊!log4j.rootLogger=info,stdoutlog4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayout#Pattern to output the caller's file name and line number.log4j.appender.stdout.layout.ConversionPattern=%5p[%t] (%F:%L) – %m%n分析一下:第一行,配置log4j.rootLogger你明白吧。应为它是根,总得配 置一下,否则别的Log继承什么啊。其他的Log可以配置也可以不配置。等号后面的第一个参数表示日志级别,可以填五个级别中的一种,后面的参数都是让 Log知道输出到哪里,如果你想让日志输出到两个地方就加两个输出参数,比如:log4j.rootLogger=info, stdout, file这里的info表示,该Log的日志级别为info,所有级别小于info的日志都不会被记录。比如使用这个配置文件的话,我刚开始举的那个类中log.debug("Debug info.");这句话是不起作用的,因为debug的级别小于info。这样就很容易控制什么信息在调试的时候要显示,什么信息在发布的时候要去掉。这些都不用改代码,很方便吧。但,stdout和file又是什么呢?接着往下看,就是配置stdout了,这个名字是随便取的,你可以叫它A:log4j.appender.A=org.apache.log4j.ConsoleAppender那么上面的rootLogger的参数stdout也要改成A,其他用到的地方当然也要改。这里的关键不是名字,而是appender类型,比如这里的“ConsoleAppender”,看明白了吧,输出到 Console。后面两行都是设置日志格式的,一般情况下你就照抄吧。既然是最简入门关注于理解Log4j的工作原理,我就不介绍file类型的 appender了,一搜一大把。在实际的项目开发中,很可能遇到所引用的包用Log4j来记录日志,比如Hibernate。那么在这里你可以很容易的控制这个包如何记录日志。比如在上面的配置文件中加一行:log4j.logger.org.hibernate=fatal 那么所有org.hibernate包下面的类就只会显示很少的信息,因为fatal的级别最高啊。三、部署别怕,这可不是部署Tomcat。把log4j的包和commons- logging的包(加在一起才两个)放到classpath下面。然后把配置文件保存为log4j.properties,也放在classpath下 面(如果用Eclipse的话,放在src目录下即可)。然后你就可以跑了。

⑼ 如何查找log4j加载配置文件的位置

自动加载配置文件:(1)如果采用log4j输出日志,要对log4j加载配置文件的过程有所了解。log4j启动时,默认会寻找source folder下的log4j.xml配置文件,若没有,会寻找log4j.properties文件。然后加载配置。配置文件放置位置正确,不用在程序中手动加载log4j配置文件。如果将配置文件放到了config文件夹下,在build Path中设置下就好了。若要手动加载配置文件如下:(1)PropertyConfigurator.configure("log4j.properties") 默认读取的是项目根目录的路径。此时的log4j.properties要放在项目目录下。


赞 (0)