Log4j文件配置教程大全~

Log4J的配置文件(Configuration File)就是用来设置记录器的级别、存放器和布局的,它可接key=value格式的设置或xml格式的设置信息。通过配置,可以创建出Log4J的运行环境。

1, 整体框架介绍:

 #配置根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
2. 日志输出级别:

ERROR、WARN、INFO、DEBUG
ERROR 为严重错误 主要是程序的错误
WARN 为一般警告,比如session丢失
INFO 为一般要显示的信息,比如登录登出
DEBUG 为程序的调试信息
配置日志信息输出目的地

其中 [level] 是日志输出级别,共有5级:
FATAL      0
ERROR      3
WARN       4
INFO       6
DEBUG      7 

3. 配置日志信息输出目的地(控制台,日志文件(每天生成一个日志文件,文件达到一定大小重新生成新文件))

Appender 为日志输出目的地,Log4j提供的appender有以下几种:
org.apache.log4j.ConsoleAppender(控制台),
org.apache.log4j.FileAppender(文件),
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
4. 配置日志信息的格式:(HTML表格形式布局,包含日志信息的级别和信息字符串,包含日志产生的时间,类别)
Layout:日志输出格式,Log4j提供的layout有以下几种:
org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
5. 日志信息格式中几个符号所代表的含义:
打印参数: 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 ) 

6. 输出目的地常见的选项

 控制台常见的选项
Threshold=DEBUG:指定日志消息的输出最低层次。
ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。
Target=System.err:默认情况下是:System.out,指定输出控制台FileAppender 选项
Threshold=DEBUF:指定日志消息的输出最低层次。
ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。
File=mylog.txt:指定消息输出到mylog.txt文件。
Append=false:默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容。(增加与覆盖的区别)RollingFileAppender 选项
Threshold=DEBUG:指定日志消息的输出最低层次。
ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。
File=mylog.txt:指定消息输出到mylog.txt文件。
Append=false:默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容。
MaxFileSize=100KB: 后缀可以是KB, MB 或者是 GB. 在日志文件到达该大小时,将会自动滚动,即将原来的内容移到mylog.lo

7. easy sample~

### 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.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = logs/error.log ## 异常日志文件名
log4j.appender.D.Append = true
log4j.appender.D.Threshold = ERROR ## 只输出ERROR级别以上的日志!!!
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
代码中使用:
public   class  TestLog4j  {public   static   void  main(String[] args)  {PropertyConfigurator.configure( " D:/Code/conf/log4j.properties " );Logger logger  =  Logger.getLogger(TestLog4j. class );logger.debug( " debug " );logger.error( " error " );}
}

8  another sample

log4j.rootLogger=DEBUG,A1,R
#log4j.rootLogger=INFO,A1,R
# ConsoleAppender 输出
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n# File 输出 一天一个文件,输出路径可以定制,一般在根路径下
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File=blog_log.txt
log4j.appender.R.MaxFileSize=500KB
log4j.appender.R.MaxBackupIndex=10
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c] [%p] - %m%n

9. sample3

下面给出的Log4J配置文件实现了输出到控制台,文件,回滚文件,发送日志邮件,输出到数据库日志表,自定义标签等全套功能。
log4j.rootLogger=DEBUG,CONSOLE,A1,im
#DEBUG,CONSOLE,FILE,ROLLING_FILE,MAIL,DATABASE
log4j.addivity.org.apache=true
###################
# Console Appender
输出到控制台 

################### log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender log4j.appender.Threshold=DEBUG log4j.appender.CONSOLE.Target=System.out log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout log4j.appender.CONSOLE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n #log4j.appender.CONSOLE.layout.ConversionPattern=[start]%d{DATE}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD] n%c[CATEGORY]%n%m[MESSAGE]%n%n##################### # File Appender

输出到文件

##################### log4j.appender.FILE=org.apache.log4j.FileAppender log4j.appender.FILE.File=file.log log4j.appender.FILE.Append=false log4j.appender.FILE.layout=org.apache.log4j.PatternLayout log4j.appender.FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n # Use this layout for LogFactor 5 analysis######################## # Rolling File

回滚文件

######################## log4j.appender.ROLLING_FILE=org.apache.log4j.RollingFileAppender log4j.appender.ROLLING_FILE.Threshold=ERROR log4j.appender.ROLLING_FILE.File=rolling.log log4j.appender.ROLLING_FILE.Append=true log4j.appender.ROLLING_FILE.MaxFileSize=10KB log4j.appender.ROLLING_FILE.MaxBackupIndex=1 log4j.appender.ROLLING_FILE.layout=org.apache.log4j.PatternLayout log4j.appender.ROLLING_FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n#################### # Socket Appender #################### log4j.appender.SOCKET=org.apache.log4j.RollingFileAppender log4j.appender.SOCKET.RemoteHost=localhost log4j.appender.SOCKET.Port=5001 log4j.appender.SOCKET.LocationInfo=true # Set up for Log Facter 5 log4j.appender.SOCKET.layout=org.apache.log4j.PatternLayout log4j.appender.SOCET.layout.ConversionPattern=[start]%d{DATE}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD]%n%c[CATEGORY]%n%m[MESSAGE]%n%n######################## # Log Factor 5 Appender ######################## log4j.appender.LF5_APPENDER=org.apache.log4j.lf5.LF5Appender log4j.appender.LF5_APPENDER.MaxNumberOfRecords=2000######################## # SMTP Appender

发送日志邮件

####################### log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender log4j.appender.MAIL.Threshold=FATAL log4j.appender.MAIL.BufferSize=10 log4j.appender.MAIL.From=chenyl@yeqiangwei.comlog4j.appender.MAIL.SMTPHost=mail.hollycrm.com log4j.appender.MAIL.Subject=Log4J Message log4j.appender.MAIL.To=chenyl@yeqiangwei.comlog4j.appender.MAIL.layout=org.apache.log4j.PatternLayout log4j.appender.MAIL.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n######################## # JDBC Appender

输出到数据库日志表

####################### log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender log4j.appender.DATABASE.URL=jdbc:mysql://localhost:3306/test log4j.appender.DATABASE.driver=com.mysql.jdbc.Driver log4j.appender.DATABASE.user=root log4j.appender.DATABASE.password= log4j.appender.DATABASE.sql=INSERT INTO LOG4J (Message) VALUES ('[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n') log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout log4j.appender.DATABASE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%nlog4j.appender.A1=org.apache.log4j.DailyRollingFileAppender log4j.appender.A1.File=SampleMessages.log4j log4j.appender.A1.DatePattern=yyyyMMdd-HH'.log4j' log4j.appender.A1.layout=org.apache.log4j.xml.XMLLayout################### #自定义Appender (自定义标签~)################### log4j.appender.im = net.cybercorlin.util.logger.appender.IMAppenderlog4j.appender.im.host = mail.cybercorlin.net log4j.appender.im.username = username log4j.appender.im.password = password log4j.appender.im.recipient = corlin@yeqiangwei.comlog4j.appender.im.layout=org.apache.log4j.PatternLayout log4j.appender.im.layout.ConversionPattern =[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
参考博文:https://blog.csdn.net/azheng270/article/details/2173430/

Log4j文件配置教程大全相关推荐

  1. IDEA 2022 常用 插件 安装 与 全局配置 教程 大全

    IDEA 2022 常用 插件 安装 与 全局配置 教程 大全 文章目录 IDEA 2022 常用 插件 安装 与 全局配置 教程 大全 一. 安装必备插件 1. Codota 代码智能提示插件 2. ...

  2. AndroidManifest.xml文件配置教程及相关指令详解

    AndroidManifest.xml 是每个android程序中必须的文件,它位于整个项目的根目录.我们每天都在使用这个文件,往里面配置程序运行所必要的组件,权限,以及一些相关信息.但是对于这个文件 ...

  3. [转载]java日志框架log4j详细配置及与slf4j联合使用教程

    一.log4j基本用法 首先,配置log4j的jar,maven工程配置以下依赖,非maven工程从maven仓库下载jar添加到"build path" 1 2 3 4 5 &l ...

  4. 1.Slf4j使用log4j的配置参数、配置sl4j/log4j输出到不同的文件、案例

    1.Slf4j使用log4j的配置参数 转自:https://blog.csdn.net/yx0628/article/details/83214387 slf4j,即简单日志门面(Simple Lo ...

  5. FPGA学习笔记之Altera FPGA使用JIC文件配置固化教程

    FPGA学习笔记之Altera FPGA使用JIC文件配置固化教程 很多做过单片机的朋友都知 道,我们在对MCU烧写完程序固件后,那么该程序固件就存储在了该MCU内部.即使MCU断电了再重新上电,程序 ...

  6. java日志框架log4j详细配置及与slf4j联合使用教程

    最后更新于2017年02月09日 一.log4j基本用法 首先,配置log4j的jar,maven工程配置以下依赖,非maven工程从maven仓库下载jar添加到"build path&q ...

  7. idea 父文件_万事开头难!最新MyBatis程序配置教程(IDEA版)

    文章来源:万事开头难!最新MyBatis程序配置教程(IDEA版) 原文作者:Baret~H 来源平台:CSDN 实验环境:IDEA2020.1+MySQL8.0.21+Mybatis3.5.5+Ju ...

  8. Tomcat下log4j日志文件 配置过程

    1) tomcat6.0下的log4j日志文件 配置过程 首先下载两个文件,如我的tomcat版本是v6.0.24 http://www.apache.org/dist/tomcat/tomcat-6 ...

  9. OpenGL 环境配置教程-库文件汇总【glfw/glew/glad/glm/std_img】

    OpenGL的环境配置是最让初学者头疼的事情了,主要是一开始链接什么glfw.glad,不知道有什么用,什么链接库.包含目录很头大,有一步做错就可能一大堆报错. 本文对LearnOpenGL CN教程 ...

最新文章

  1. wps的高亮怎么用_怎样在WPS上实现代码语法高亮
  2. 【Git】认识各种开源协议及其关系
  3. 6.Half Lambert光照Diffuse Shader
  4. 微mysql命令行_mysql命令大全
  5. 33个PPT下载丨2018年PostgreSQL中国技术大会PPT
  6. lms算法的verilog实现_数字通信同步技术的MATLAB与FPGA实现
  7. redis 槽点重新分配 集群_Redis群集部署详解
  8. c++ 字符串_C/C++字符串大总结(一)
  9. hprose-php教程,Swoole学习笔记(六):Hprose入门
  10. 微信小程序—智能停车
  11. 基于RSelenium爬取中国裁判文书网文书数据
  12. 【Spring源码三千问】BeanDefinition详解——什么是 RootBeanDefinition?merged bean definition 又是什么鬼?
  13. iir滤波器的基本网络结构_(IIR)滤波器的基本结构-Read.ppt
  14. 疯狂的二手电商:爱回收偷食闲鱼、转转
  15. 南方h5手簿求转换参数_如何使用RTK手簿求坐标转换参数(四参数/七参数)
  16. 拼多多校招内推编程题3 六一儿童节
  17. Mathematica实例——利用Mathematica演示量子力学中的波包演化
  18. python显示图片不连续_python实现连续图文识别
  19. ug12在win8计算机名错,Win8安装UG9.0时出错提示“UGII_TMP_DIR 被设为一个有无效(非ASCII)字符的目录”怎么办...
  20. #swust oj971 和972统计利用先序遍历创建的二叉树的深度和宽度

热门文章

  1. Python HTMLCalendar类| 带有示例的formatyearpage()方法
  2. 学到了!MySQL 8 新增的「隐藏索引」真不错
  3. Oracle-(if/case/以及模拟注册登录)练习-20131015
  4. 想要入坑机器学习?这是MIT在读博士的AI心得
  5. 真空压力变送器怎么样零点标定_恒压供水设备中液位变送器分类及工作原理
  6. linux socat rpm,RabbitMQ系列(三)RabbitMQ Server的安装(基于Linux RPM)
  7. python爬取行业数据_用Python进行Web爬取数据
  8. domino流程图_OA实施工程师一线解读Java与Domino优劣
  9. vue修改计算属性的值_「Vue学习记录五」计算属性和侦听器
  10. 忽视大小写函数_使用率低但功能强大的6个Excel函数公式应用技巧解读!