一、Log4j介绍
原文地址:http://marsvaadin.iteye.com/blog/1362623
log4j是类似于java.util.logging的日志作用,即记录一些有用信息,是一个日志框架;
log4j == log for Java
日志框架的作用:
(1)函数参数是否正确;
(2)软件发布后,记录用户的每一步操作;
(3)记录程序运行出错位置;
log4j在http://logging.apache.org/log4j/1.2/download.html 中进行下载;
log4j的api文档在log4j/site/apidocs/index.html中;
log4j可以改变日志记录的形式比如HTML、Simple等;
log4j可以改变日志输出的目的地,比如File、DB等;
二、配置使用Log4j
原本是一个zip包,取出jar包,并在Eclipse的某个Project build path导入;
三、简单的使用Log4j
log4j需要配置文件log4j.properties进行配置,log4j.properties位于src目录 下;
log4j.properties规则:
(1)键值对;
(2)#代表注释;
(3)不支持中文;
Log4jDemo.java
- package org.impl;
- import org.apache.log4j.Logger;
- public class Log4jDemo {
- public static void main(String args[]){
- Logger logger = Logger.getLogger(org.impl.Log4jDemo.class);
- logger.debug("debug");
- logger.info("info");
- logger.error("error");
- }
- }
package org.impl;
import org.apache.log4j.Logger;
public class Log4jDemo {
public static void main(String args[]){
Logger logger = Logger.getLogger(org.impl.Log4jDemo.class);
logger.debug("debug");
logger.info("info");
logger.error("error");
}
}
log4j.properties
- log4j.rootLogger=debug,appender1
- log4j.appender.appender1=org.apache.log4j.ConsoleAppender
- log4j.appender.appender1.layout=org.apache.log4j.TTCCLayout
log4j.rootLogger=debug,appender1
log4j.appender.appender1=org.apache.log4j.ConsoleAppender
log4j.appender.appender1.layout=org.apache.log4j.TTCCLayout
显示结果:
- [main] DEBUG org.impl.Log4jDemo - debug
- [main] INFO org.impl.Log4jDemo - info
- [main] ERROR org.impl.Log4jDemo - error
[main] DEBUG org.impl.Log4jDemo - debug
[main] INFO org.impl.Log4jDemo - info
[main] ERROR org.impl.Log4jDemo - error
这样一个简单的log4j应用。
这个配置文件的意思是:
rootLogger表示最低显示等级,即显示debug等级及以上的信息;
appender1表示一个名字;
ConsoleAppender表示输出到控制台,如果想要输出到文件,则可以使用FileAppender并制定文件名称;
TTCCLayout是一种布局方式;
debug等级表示在编译开发阶段的信息;
error等级表示错误信息;
info等级表示一般的信息;
如果看到如下信息:
- log4j:WARN No appenders could be found for logger (org.impl.Log4jDemo).
- log4j:WARN Please initialize the log4j system properly.
- log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
log4j:WARN No appenders could be found for logger (org.impl.Log4jDemo).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
表示配置文件位置不正确,应该放到src目录下!
四、逐步了解Log4j
任务1:将日志输出到指定文件
只需要修改配置文件即可,配置文件修改为:
- log4j.rootLogger=debug,appender1
- log4j.appender.appender1=org.apache.log4j.FileAppender
- log4j.appender.appender1.File=./java0.log
- log4j.appender.appender1.layout=org.apache.log4j.TTCCLayout
log4j.rootLogger=debug,appender1
log4j.appender.appender1=org.apache.log4j.FileAppender
log4j.appender.appender1.File=./java0.log
log4j.appender.appender1.layout=org.apache.log4j.TTCCLayout
这样就指定了日志输出到工程目录下的java0.log文件中;
注意:这个日志文件时追加类型的。
任务2:将日志输出以HTML格式输出(效果很好!)
修改配置文件为:
- log4j.rootLogger=debug,appender1
- log4j.appender.appender1=org.apache.log4j.FileAppender
- log4j.appender.appender1.File=./java0.html
- log4j.appender.appender1.layout=org.apache.log4j.HTMLLayout
log4j.rootLogger=debug,appender1 log4j.appender.appender1=org.apache.log4j.FileAppender log4j.appender.appender1.File=./java0.html log4j.appender.appender1.layout=org.apache.log4j.HTMLLayout
即可;
任务3:同时输出到控制台和文件
修改配置文件为:
- log4j.rootLogger=debug,appender1,appender2
- log4j.appender.appender1=org.apache.log4j.FileAppender
- log4j.appender.appender1.File=./log4j.HTML
- log4j.appender.appender1.layout=org.apache.log4j.HTMLLayout
- log4j.appender.appender2=org.apache.log4j.ConsoleAppender
- log4j.appender.appender2.layout=org.apache.log4j.SimpleLayout
log4j.rootLogger=debug,appender1,appender2
log4j.appender.appender1=org.apache.log4j.FileAppender
log4j.appender.appender1.File=./log4j.HTML
log4j.appender.appender1.layout=org.apache.log4j.HTMLLayout
log4j.appender.appender2=org.apache.log4j.ConsoleAppender
log4j.appender.appender2.layout=org.apache.log4j.SimpleLayout
五、Log4j核心组件
1.Logger
设定了显示日志的级别;
常用级别为debug,info,warn,error,fatal;
2.Appender
设定了日志的输出目的;
常用有:
(1)ConsoleAppender
(2)FileAppender
(3)DailyRollingFileAppender 一天换一个文件
(4)JdbcAppender 输出到数据库
3.Layout
设定日志的内容格式;
常用有:
(1)HTMLLayout;
(2)TTCCLayout;
(3)PatternLayout;制定布局样式
如果要设置PatternLayout,必须将配置文件修改为以下形式:
- log4j.rootLogger=debug,appender1,appender2
- log4j.appender.appender1=org.apache.log4j.FileAppender
- log4j.appender.appender1.File=./log4j.HTML
- log4j.appender.appender1.layout=org.apache.log4j.HTMLLayout
- log4j.appender.appender2=org.apache.log4j.ConsoleAppender
- log4j.appender.appender2.layout=org.apache.log4j.PatternLayout
- log4j.appender.appender2.layout.ConversionPattern= 格式名称
log4j.rootLogger=debug,appender1,appender2
log4j.appender.appender1=org.apache.log4j.FileAppender
log4j.appender.appender1.File=./log4j.HTML
log4j.appender.appender1.layout=org.apache.log4j.HTMLLayout
log4j.appender.appender2=org.apache.log4j.ConsoleAppender
log4j.appender.appender2.layout=org.apache.log4j.PatternLayout
log4j.appender.appender2.layout.ConversionPattern= 格式名称
格式形式如下:
%p:日志优先级(debug、info)
%t:输出日志的线程名;
%d{yyyy-MM-dd HH:mm:ss}:时间;
%c:所属类名;
%r:日志输出所花时间;
%n:换行;
%l:日志所在行;
%m:信息;
%M:方法;
比如:
%r [%t] -%l %p %d{yyyy-MM-dd HH:mm:ss} %n
显示如下:
3 [main] -org.impl.Log4jDemo.main(Log4jDemo.java:10) ERROR 2012-01-11 17:11:37
3表示所花时间;
[main]表示线程;
org.impl.Log4jDemo.main(Log4jDemo.java:10) 表示 %l ;
ERROR表示%p;
相关推荐
好文共欣赏: jboss下通过配置log4j.xml实现web应用的日志....Log4J快速入门.htm pwosboy -JavaEye技术社区.htm 将系统日志发布到多个文件.htm 请问怎么控制日志的输出啊.htm 怎样关闭Hibernate启动时的DEBUG信息.htm
1.6.4 第三步:log4j.properties 6 1.6.5 第四步:SqlMapConfig.xml 6 1.6.6 第五步:po类 7 1.6.7 第六步:程序编写 8 1.6.8 Mybatis解决jdbc编程的问题 15 1.6.9 与hibernate不同 16 2 Dao开发方法 16 2.1 需求 16...
阿里巴巴面试题leetcode 程序猿提高篇。...Log4j 教程 - v1.0.pdf Maven 教程 - v1.0.pdf Mongodb 教程 - v1.0.pdf MySQL数据库开发的三十六条军规-石展 Netty 4.x 用户指南 - v1.0.pdf Nginx 入门指南 -
阿里巴巴面试题leetcode 程序猿提高篇。...Log4j 教程 - v1.0.pdf Maven 教程 - v1.0.pdf Mongodb 教程 - v1.0.pdf MySQL数据库开发的三十六条军规-石展 Netty 4.x 用户指南 - v1.0.pdf Nginx 入门指南 -
阿里巴巴面试题leetcode 程序猿提高篇。...Log4j 教程 - v1.0.pdf Maven 教程 - v1.0.pdf Mongodb 教程 - v1.0.pdf MySQL数据库开发的三十六条军规-石展 Netty 4.x 用户指南 - v1.0.pdf Nginx 入门指南 -
网管教程 从入门到精通软件篇 ★一。★详细的xp修复控制台命令和用法!!! 放入xp(2000)的光盘,安装时候选R,修复! Windows XP(包括 Windows 2000)的控制台命令是在系统出现一些意外情况下的一种非常有效的...
frame-wh -- Efficiency comes from diligence. And in shortage in the play ground transportation into Si, ...log4j2 入门学习与总结 spring-boot默认配置 spring-boot-starter-security 账号:admin 密码:admin
Docker —— 从入门到实践 - v1.0.pdf Dubbo部署文档.doc Dubbo面试专题.docx java后端面试题答案.pdf Java并发Fork-Join框架原理解析.docx ...详细解析_Log4j_配置 .docx 阿里百度美团面试题集合.pdf 面试宝典.pdf