Log4j 日志打印

Log4J的配置文件(Configuration File)就是用来设置记录器的级别、存放器和布局的。

先上实例:

[TestLog4J.java]

import org.apache.log4j.Logger;//头文件导入
import org.apache.log4j.PropertyConfigurator;

public class TestLog4J {
public static void main(String[] args) {
PropertyConfigurator.configure("log4j.properties");//利用log4j读取配置文件
Logger logger = Logger.getLogger(TestLog4J.class);
for(int i = 0; i < 10000; i++){
logger.info("zhujiadun");
logger.debug("debug " + i);
}
}
}

[log4j.properties]

log4j.rootLogger=DEBUG, stdout, log, errorlog
###Console ###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern =  %d{ABSOLUTE} [ %t ] [ %p ]:%L - %m%n
### Log ###
log4j.appender.log = org.apache.log4j.DailyRollingFileAppender
log4j.appender.log.File = log/log.log
log4j.appender.log.Append = true
log4j.appender.log.Threshold = INFO
log4j.appender.log.DatePattern='.'yyyy-MM-dd
log4j.appender.log.layout = org.apache.log4j.PatternLayout
log4j.appender.log.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t ] %m%n
### Error ###
log4j.appender.errorlog = org.apache.log4j.DailyRollingFileAppender
log4j.appender.errorlog.File = log/errorlog.log
log4j.appender.errorlog.Append = true
log4j.appender.errorlog.Threshold = DEBUG
log4j.appender.errorlog.DatePattern='.'yyyy-MM-dd
log4j.appender.errorlog.layout = org.apache.log4j.PatternLayout
log4j.appender.errorlog.layout.ConversionPattern =%-d{yyyy-MM-dd HH:mm:ss} [ %t ] %m%n

文件目录:

运行输出打印:

1、控制台打印

2、日志文件

[errorlog.log]文件片段

2014-11-26 15:48:42 [ main ] zhujiadun

2014-11-26 15:48:42 [ main ] debug 9997

2014-11-26 15:48:42 [ main ] zhujiadun

2014-11-26 15:48:42 [ main ] debug 9998

2014-11-26 15:48:42 [ main ] zhujiadun

2014-11-26 15:48:42 [ main ] debug 9999

[log.log]片段

2014-11-26 15:48:42 [ main ] zhujiadun

2014-11-26 15:48:42 [ main ] zhujiadun

2014-11-26 15:48:42 [ main ] zhujiadun

2014-11-26 15:48:42 [ main ] zhujiadun

2014-11-26 15:48:42 [ main ] zhujiadun

2014-11-26 15:48:42 [ main ] zhujiadun

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------

实例结束,一下为讲解

1. 配置文件

文件[log4j.properties]

#根配置
log4j.rootLogger  =   [ level ]   ,  appenderName1 ,  appenderName2 ,  …
#配置日志信息输出目的地Appender
log4j.appender.appenderName  =  fully.qualified.name.of.appender.class
  log4j.appender.appenderName.option1  =  value1
  …
  log4j.appender.appenderName.optionN  =  valueN
#配置日志信息的格式(布局)
log4j.appender.appenderName.layout  =  fully.qualified.name.of.layout.class
  log4j.appender.appenderName.layout.option1  =  value1
  …
  log4j.appender.appenderName.layout.optionN  =  valueN

其中[level]是日志输出级别,分别为

ALL<DEBUG<INFO<WARN<ERROR<FATAL<OFF

其中appender为日志输出的目的地,log4j提供的appender有:

org.apache.log4j.ConsoleAppender(控制台),

org.apache.log4j.FileAppender(文件),

org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),

org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),

org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)

其中layout为日志输出格式,logj提供的layout有:

org.apache.log4j.HTMLLayout(以HTML表格形式布局),

org.apache.log4j.PatternLayout(可以灵活地指定布局模式),

org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),

org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

打印参数:log4j提供打印格式格式化日志信息,如:

%m   输出代码中指定的消息

%p   输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL

%r   输出自应用启动到输出该log信息耗费的毫秒数

%c   输出所属的类目,通常就是所在类的全名

%t   输出产生该日志事件的线程名

%n   输出一个回车换行符,Windows平台为“\r\n”,Unix平台为“\n”

%d   输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss , SSS},输出类似:2002年10月18日  22 : 10 : 28 , 921

%l   输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java: 10 )

其他一些参数

log4j.appender.appender1.MaxFileSize=最大文件大小

log4j.appender.appender1.MaxBackupIndex=备份文件个数

2. 程序中读取配置文件

PropertyConfigurator.configure("log4j.properties");

Logger logger = Logger.getLogger("com.test");

3. 为不同的appender设置不同的日志输出级别

在[log4j.properties]文件中对应的appender修改Threshold配置,如:

log4j.properties.D.Threshold=DEBUG  ##输出DEBUG级别以上的日志

参考地址:

http://www.blogjava.net/zJun/archive/2006/06/28/55511.html

http://www.cnblogs.com/alipayhutu/archive/2012/06/21/2558249.html

时间: 2024-10-13 11:28:41

Log4j 日志打印的相关文章

java项目log4j日志打印配置

#定义输出级别和输出平台  添加DEBUG表示打印sql 语句 log4j.rootLogger=DEBUG,INFO,ERROR,stdout,R log4j.category.org.springframework = INFOlog4j.category.freemarker = INFOlog4j.category.org.mybatis.spring=INFOlog4j.category.net.joyphper = DEBUG ### appender.R输出到日志文件 ### lo

Java项目中如何使用log4j和slf4j实现日志打印

什么是log4j? Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.GUI组件,甚至是套接口服务器.NT的事件记录器.UNIX Syslog守护进程等:我们也可以控制每一条日志的输出格式:通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程.最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码. 什么是slf4j? SLF4J,即简单日志门面(Simple Logging Facade fo

log4j日志基本配置

Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局).这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出.综合使用这三个组件可以轻松地记录信息的类型和级别,并可以在运行时控制日志输出的样式和位置. 1.Loggers Loggers组件在此系统中被分为五个级别:DEBUG.INFO.WARN.ERROR和FATAL.这五个级别是有顺序的,DEBUG < INFO < WARN < ERROR < FATAL,分别用

Log4J日志配置详解

一.Log4j简介 Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局).这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出.综合使用这三个组件可以轻松地记录信息的类型和级别,并可以在运行时控制日志输出的样式和位置. 1.Loggers Loggers组件在此系统中被分为五个级别:DEBUG.INFO.WARN.ERROR和FATAL.这五个级别是有顺序的,DEBUG < INFO < WARN < ERROR <

项目log日志打印

①使用到的jar包: 大概是这几个,具体我也不知道是哪一个,下次使用的时候自己测试下. commons-logging-1.2.jar commons-discovery-0.5.jar log4j-1.2.17.jar ②log4j.properties log4j.rootLogger=DEBUG,CONSOLE,A log4j.addivity.org.apache=false log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender

log4j日志输出到web项目指定文件夹

感谢 eric2500 的这篇文章:http://www.cxyclub.cn/n/27860/ 摘要:尝试将log4j的文件日志输出到web工程制定目录,遇到了很多问题,最终在eric2500的指导下搞定,下面是记录. 其原理在于log4j的配置文件支持服务器的vm的环境变量,如${oss.log4j.path},在log4j加载配置文件之前,先用 System.setProperty("","")设置好日志文件路径,这一操作通过一个初始的servlet来实现.

解决IntelliJ IDEA控制台乱码问题[包含程序运行时的log4j日志以及tomcat日志乱码]

这里使用的IntelliJ IDEA版本为[IntelliJ IDEA 14.1.4]: 一.控制台打印的程序运行时的log4j日志中包含中文乱码 在IDEA安装目录的bin目录下找到名为"idea.exe.vmoptions"的文件: 使用文本编译软件(Notepad++等)打开此文件,在文件内容从末尾追加一行设置(-Dfile.encoding=UTF-8),表示指定编码为UTF-8: 重启IDEA,再次测试,log4j日志不再乱码: 但是发现tomcat启动日志乱码了(修改IDE

Tomcat日志、项目中的log4j日志、控制台——我的日志最后到底跑哪去了?

1.Tomcat自带日志功能,即时你的项目中有log4j也不会影响到Tomcat自己记录日志. 2.你的项目中的log4j中的日志指定打印到什么地方(控制台或者文件),便会打印到什么地方,和Tomat日志无关. --如果你项目中的log4j指定打印到控制台,并且你开启的tomcat有控制台,那么这个时候你可以在控制台观察到日志. --如果你用log4j来处理了Tomcat的日志(具体需要你自己配置tomcat的配置文件),那么Tomcat便会使用log4j来打印,但是这和你项目中的log4j仍然

log4j日志工具

一.关于日志 1.日志定义:项目在运行阶段产生的信息 2.日志级别 最常见的日志级别有4个: error :错误日志 warn:警告日志 info:流程日志 debug:调试日志 优先级从高到低分别是ERROR.WARN.INFO.DEBUG log4j程序会打印高于或等于所设置级别的日志,设置的日志等级越高,打印出来的日志就越少 3.日志级别如何选择(在实际工作中,): 在代码开发阶段:使用debug级别 在正式运行阶段:使用ERROR.WARN.INFO中的某一个 info:想查看流程信息