学习网址1:http://www.cnblogs.com/licheng/archive/2008/08/23/1274566.html

一、快速入手

1.官网下载log4j压缩包,本地加压

2.Eclipse开发工具中新建Java项目,右键单击该项目选择“属性(properties)”打开当前项目的属性窗口,选择Java构建路径(Java Build Path)>>库(Libaries)>>添加外部JAR(Add External JARs),将刚才下载的log4j.jar包添加到项目中去。

3.在项目中新建一个log4j.properties的配置文件:该文件专门用于配置日志信息,其内容决定日志信息的输出位置及格式。右键单击项目选择 新建 >> 文件 ,文件名命名为 xxx.properties

4.将配置信息写入到刚才建立的文件log4j.properties中去:

###将日志信息输出到控制台###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}%m%n  %l%n###将日志信息输出到文件中###
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=sysInfo.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}%m%n  %l%n###设置日志的优先级别###
log4j.rootLogger=debug,stdout,file

5.新建一个java文件,测试配置是否成功:

 1 import org.apache.log4j.Logger;
 2 import org.apache.log4j.PropertyConfigurator;
 3
 4 public class Log4jDemo {
 5     public static void main(String[] args) {
 6         Logger log = null;
 7         try {
 8             // 初始化日志生成器,加载日志配置文件
 9             PropertyConfigurator.configure("log4j.properties");
10             log = Logger.getLogger(Log4jDemo.class.getName());
11
12             log.debug("main");
13             int i = 1 / 0;
14         } catch (Exception e) {
15             // 记录日志
16             log.info(e.getMessage());
17             // e.printStackTrace();
18         }
19     }
20 }

6.输出结果

二、扩展学习

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

Log4J配置文件的基本格式如下:

 #配置根Logger
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] 是日志输出级别,共有5级:

FATAL      0
ERROR      3
WARN       4
INFO       6
DEBUG      7

Appender 为日志输出目的地,Log4j提供的appender有以下几种:

org.apache.log4j.ConsoleAppender(控制台),
org.apache.log4j.FileAppender(文件),
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)

Layout:日志输出格式,Log4j提供的layout有以下几种:

org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

打印参数: Log4J采用类似C语言中的printf函数的打印格式格式化日志信息,如下:

%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 )

2. 在代码中初始化Logger: 
1)在程序中调用BasicConfigurator.configure()方法:给根记录器增加一个ConsoleAppender,输出格式通过PatternLayout设为"%-4r [%t] %-5p %c %x - %m%n",还有根记录器的默认级别是Level.DEBUG
2)配置放在文件里,通过命令行参数传递文件名字,通过PropertyConfigurator.configure(args[x])解析并配置;
3)配置放在文件里,通过环境变量传递文件名等信息,利用log4j默认的初始化过程解析并配置;
4)配置放在文件里,通过应用服务器配置传递文件名等信息,利用一个特殊的servlet来完成配置。

3. 为不同的 Appender 设置日志输出级别:
当调试系统时,我们往往注意的只是异常级别的日志输出,但是通常所有级别的输出都是放在一个文件里的,如果日志输出的级别是BUG!?那就慢慢去找吧。
这时我们也许会想要是能把异常信息单独输出到一个文件里该多好啊。当然可以,Log4j已经提供了这样的功能,我们只需要在配置中修改AppenderThreshold 就能实现,比如下面的例子:

 ### set log levels ###
log4j.rootLogger = debug ,  stdout ,  D ,  E### 输出到控制台 ###
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} %5p %c{ 1 }:%L - %m%n### 输出到日志文件 ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = logs/log.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG ## 输出DEBUG级别以上的日志
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n### 保存异常信息到单独文件 ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File = logs/error.log ## 异常日志文件名
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR ## 只输出ERROR级别以上的日志!!!
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

转载于:https://www.cnblogs.com/gzhcsu/p/7753736.html

Log4j 日志输出学习(Eclipse)相关推荐

  1. Mybatis 的Log4j日志输出问题 - 以及有关日志的所有问题

    转载自   Mybatis 的Log4j日志输出问题 - 以及有关日志的所有问题 使用Mybatis的时候,有些时候能输出(主要是指sql,参数,结果)日志.有些时候就不能. 无法输出日志的时候,无论 ...

  2. log4j日志输出性能优化-缓存、异步

    1.log4j已成为大型系统必不可少的一部分,log4j可以很方便的帮助我们在程序的任何位置输出所要打印的信息,便于我们对系统在调试阶段和正式运行阶段对问题分析和定位.由于日志级别的不同,对系统的性能 ...

  3. log4j日志输出框架

    什么是log4j框架呢? log4j是一个日志输出框架,用于输出日志的.比如MyBatis的日志就是通过log4j输出的,主流框架都是log4j输出的,Spring框架 也可以通过log4j输出日志! ...

  4. log4j日志输出性能优化

    1.log4j已成为大型系统必不可少的一部分,log4j可以很方便的帮助我们在程序的任何位置输出所要打印的信息,便于我们对系统在调试阶段和正式运行阶段对问题分析和定位.由于日志级别的不同,对系统的性能 ...

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

    尝试将log4j的文件日志输出到web工程制定目录,遇到了很多问题,最终搞定,下面是记录. 其原理在于log4j的配置文件支持服务器的vm的环境变量,如${oss.log4j.path},在log4j ...

  6. Log4j日志输出详细

    日志论 在应用程序中输出日志有有三个目的: (1 )监视代码中变量的变化情况,把数据周期性地记录到文件中供其他应用进行统计分析工作. (2 )跟踪代码运行进轨迹,作为日后审计的依据. (3 )担当集成 ...

  7. java:log4j日志输出

    获取CLASSPATH下的配置文件.(src下,Build Path下) ResourceBundle rb = ResourceBundle.getBundle("service" ...

  8. 【Log4j日志输出】控制台输出、输出到文件:简单使用示例

    官方下载 链接:Apache Log4j Download Mirrors 使用方式 下载完毕后解压: 复制jar包 把log4j-1.2.17.jar包放进项目里,添加到Java Build Pat ...

  9. 运行spark时不使用框架中默认提供的大量log4J日志输出

    如spark开发时,我们在未作配置时运行程序会出现大量的log4J的信息,若不想显示,可以代码开始加入: Logger.getLogger("org").setLevel(Leve ...

最新文章

  1. ​计算产业如何加速突破?鲲鹏开发者技术沙龙带来新答案
  2. js根据身份证号码判断性别和年龄
  3. ​浅谈Asp.net的sessionState
  4. Django中配置静态文件路径
  5. html画等边三角形,前台面试:使用CSS画一个等边三角形
  6. CSDN的常用文本设置(字体大小红色)
  7. linux cpu不足处理运维,Linux运维知识之Linux服务器CPU占用率较高问题排查思路
  8. linux下redis安装配置及redis常用命令(实战详细版)
  9. SpringBoot中使用Hibernate Validator校验工具类
  10. python编程词典_Python 字典(Dictionary)操作详解
  11. xcap 发包工具 使用帮助
  12. 羊毛之家,青龙脚本,几乎全部可用
  13. Win10专业版如何安装Docker
  14. python图像边缘检测_Python进行图片水平边缘检测prewitt算子法
  15. matlab 矩阵数据类型,Matlab数据类型
  16. PyTorch常用5个抽样函数
  17. 【neo4j】知识图谱实战---构建红楼梦知识图谱
  18. 玛格丽特·米德2019下半年EI会议与人格理论初探
  19. 如何解决Word启动问题
  20. TM4C123系列(三)————PWM输出

热门文章

  1. c语言求正整数连续数的和大数字_机器视觉(图像处理)入门金典之图像数字化及处理方法...
  2. 请使用webdav_介绍下phpdav的使用功能价值
  3. jooq生成records_Java 14 Records类
  4. java时区_Java时区
  5. Java Singleton类中的线程安全
  6. linux系统数据文件和信息--unix环境高级编程读书笔记
  7. 前端web:响应式网站开发的现状你了解吗?
  8. VMware虚拟机中Centos7的IP地址设置方法
  9. 两男子骑摩托车抢夺宴席礼金 警方:嫌疑人已被抓获
  10. “第八期央企CIO论坛”成功举办