how2j.cn

相关下载
文件名 文件大小
log4j.properties 593b
log4j.rar 433k
使用站长秘制下载工具
步骤 1 : log4j.properties   
步骤 2 : TestLog4j   
步骤 3 : 分析代码   
步骤 4 : 解释log4j.properties   
步骤 5 : 格式解释   

步骤 1 :

log4j.properties

首先在src目录下添加log4j.properties文件,这个配置文件什么含义后面再讲
log4j.properties
log4j.rootLogger=debug, stdout, R log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.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.appender.R=org.apache.log4j.RollingFileAppender log4j.appender.R.File=example.log log4j.appender.R.MaxFileSize=100KB # Keep one backup file log4j.appender.R.MaxBackupIndex=5 log4j.appender.R.layout=org.apache.log4j.PatternLayout log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
log4j.rootLogger=debug, stdout, R

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.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.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=example.log

log4j.appender.R.MaxFileSize=100KB
# Keep one backup file
log4j.appender.R.MaxBackupIndex=5

log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
步骤 2 :

TestLog4j

然后修改TestLog4j,并运行。 有两个效果
1. 输出在控制台,并且格式有所变化,如图所示,会显示是哪个类的哪一行输出的信息
2. 不仅仅在控制台有输出,在把日志输出到了 E:\project\log4j\example.log 这个位置
TestLog4j
package log4j; import org.apache.log4j.Logger; import org.apache.log4j.PropertyConfigurator; public class TestLog4j { static Logger logger = Logger.getLogger(TestLog4j.class); public static void main(String[] args) throws InterruptedException { PropertyConfigurator.configure("e:\\project\\log4j\\src\\log4j.properties"); for (int i = 0; i < 5000; i++) { logger.trace("跟踪信息"); logger.debug("调试信息"); logger.info("输出信息"); logger.warn("警告信息"); logger.error("错误信息"); logger.fatal("致命信息"); } } }
package log4j;

import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;

public class TestLog4j {
	static Logger logger = Logger.getLogger(TestLog4j.class);
	public static void main(String[] args) throws InterruptedException {
		PropertyConfigurator.configure("e:\\project\\log4j\\src\\log4j.properties");
		for (int i = 0; i < 5000; i++) {
			logger.trace("跟踪信息");
			logger.debug("调试信息");
			logger.info("输出信息");
			logger.warn("警告信息");
			logger.error("错误信息");
			logger.fatal("致命信息");
		}
	}
}
步骤 3 :

分析代码

Log4j入门 中的BasicConfigurator.configure();方式不同,采用指定配置文件

PropertyConfigurator.configure("e:\\project\\log4j\\src\\log4j.properties");

Log4j的配置方式按照log4j.properties中的设置进行
步骤 4 :

解释log4j.properties

设置日志输出的等级为debug,低于debug就不会输出了
设置日志输出到两种地方,分别叫做 stdoutR

log4j.rootLogger=debug, stdout, R

第一个地方stdout, 输出到控制台

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

输出格式是 %5p [%t] (%F:%L) - %m%n, 格式解释在下个步骤讲解

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n

第二个地方R, 以滚动的方式输出到文件,文件名是example.log,文件最大100k, 最多滚动5个文件

log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=example.log
log4j.appender.R.MaxFileSize=100KB
log4j.appender.R.MaxBackupIndex=5

输出格式是 %p %t %c - %m%n, 格式解释在下个步骤讲解

log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
log4j.rootLogger=debug, stdout, R log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.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.appender.R=org.apache.log4j.RollingFileAppender log4j.appender.R.File=example.log log4j.appender.R.MaxFileSize=100KB log4j.appender.R.MaxBackupIndex=5 log4j.appender.R.layout=org.apache.log4j.PatternLayout log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
log4j.rootLogger=debug, stdout, R

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.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.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=example.log
log4j.appender.R.MaxFileSize=100KB
log4j.appender.R.MaxBackupIndex=5

log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
步骤 5 :

格式解释

log4j日志输出格式一览:
%c 输出日志信息所属的类的全名
%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy-MM-dd HH:mm:ss },输出类似:2002-10-18- 22:10:28
%f 输出日志信息所属的类的类名
%l 输出日志事件的发生位置,即输出日志信息的语句处于它所在的类的第几行
%m 输出代码中指定的信息,如log(message)中的message
%n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”
%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL。如果是调用debug()输出的,则为DEBUG,依此类推
%r 输出自应用启动到输出该日志信息所耗费的毫秒数
%t 输出产生该日志事件的线程名

所以:
%5p [%t] (%F:%L) - %m%n 就表示
宽度是5的优先等级 线程名称 (文件名:行号) - 信息 回车换行
格式解释


HOW2J公众号,关注后实时获知布最新的教程和优惠活动,谢谢。


问答区域    
2018-06-22 怎么在项目中应用呢
MJ
怎么在项目中应用呢




2 个答案

Little_Monkey 答案时间:2018-06-29
学习了 Mybatis 之后 你就知道了, mybatis 就是使用log4j 来输出 sql语句的

Little_Monkey 答案时间:2018-06-29
学习了 Mybatis 之后 你就知道了, mybatis 就是使用log4j 来输出 sql语句的




答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到




2018-02-11 输出的文件路径问题
小白加菜鸟
log4j.appender.R.File=example.log 这段话只的是输出的日志存在这个文件中,可是文件的位置在那里指定的?就是日志输出到了 E:\project\log4j\example.log 中的E:\project\log4j这个位置在那里指定?还望明示




1 个答案

happy_code 答案时间:2018-06-26
可能默认的吧,在项目根目录下
可以百度一下更详细的配置




答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到




2017-08-19 这个问题....
2017-08-08 输出路径怎么设置
2017-07-04 有个问题,你那个文件是需要读取的文件,不是输出目录
2017-07-03 输出路径问题
2017-05-31 宽度是5的优先等级
2017-04-13 Log4J 问题咨询
2017-03-31 这个讲得简明扼要,入门还是挺好的,厉害




提问之前请登陆
关于 JAVA 应用-Log4j-配置讲解 的提问

尽量提供截图代码异常信息,有助于分析和解决问题。 也可进本站QQ群交流: 620943819
提问尽量提供完整的代码,环境描述,越是有利于问题的重现,您的问题越能更快得到解答。
对教程中代码有疑问,请提供是哪个步骤,哪一行有疑问,这样便于快速定位问题,提高问题得到解答的速度
在已经存在的几千个提问里,有相当大的比例,是因为使用了和站长不同版本的开发环境导致的,比如 jdk, eclpise, idea, mysql,tomcat 等等软件的版本不一致。
请使用和站长一样的版本,可以节约自己大量的学习时间。 站长把教学中用的软件版本整理了,都统一放在了这里, 方便大家下载: http://how2j.cn/k/helloworld/helloworld-version/1718.html

上传截图