首页 > 其他分享 >Apache Log4j配置说明

Apache Log4j配置说明

时间:2023-07-27 19:31:26浏览次数:46  
标签:输出 配置 指定 log4j Apache 日志 默认值 true Log4j


Apache Log4j配置说明


本文详细介绍Log4j的所有配置属性。


author: ZJ 07-3-17


Blog: [url]http://zhangjunhd.blog.51cto.com/[/url]


1.Log4j简介


Log4j是Apache的一个开源项目,它允许开发者以任意间隔输出日志信息。Log4j主要由三大类组件构成:


1)Logger-负责输出日志信息,并能够对日志信息进行分类筛选,即决定哪些日志信息应该被输出,哪些该被忽略。Loggers组件输出日志信息时分为5个级别:DEBUG、INFO、WARN、ERROR、FATAL。这五个级别的顺序是:DEBUG<INFO<WARN<ERROR<FATAL。如果设置某个Logger组件的级别是P,则只有级别比P高的日志信息才能输出。Logger是有继承关系的,最上层是rootLogger,定义的其他Logger都会继承rootLogger。


 


2)Appender-定义了日志输出目的地,指定日志信息应该被输出到什么地方。输出的目的地可以是控制台、文件或网络设备。


 


3)Layout-通过在Appender的后面附加Layout来实现格式化输出。


一个Logger可以有多个Appender,每个Appender对应一个Layout。


2.Loggers


Logger的定义格式:log4j.[loggername]=[level],appenderName,appenderName,…


这里level是指Logger的优先级,appenderName是日志信息的输出地,可以同时定义多个输出地。


3.Appenders


Appender的定义格式:


log4j.appender.appenderName = fully.qualified.name.of.appender.class  


// "fully.qualified.name.of.appender.class" 可以指定下面五个目的地中的一个:


Appender类及其作用列表


Appender类名

作 用

org.apache.log4j.ConsoleAppender

将日志输出到控制台

org.apache.log4j.FileAppender

将日志输出到文件

org.apache.log4j.DailyRollingFileAppender

每天产生一个日志文件

org.apache.log4j.RollingFileAppender

文件大小到达指定尺寸时产生一个新的文件

org.apache.log4j. WriterAppender

将日志信息以流格式发送到任意指定的地方

 


1)ConsoleAppender选项


-Threshold=WARN:指定日志消息的输出最低层次。


-ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。


-Target=System.err:默认情况下是:System.out,指定输出控制台。


 


2)FileAppender 选项


-Threshold=WARN:指定日志消息的输出最低层次。


-ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。


-File=mylog.txt:指定消息输出到mylog.txt文件。


- Append=false:默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容。


 


3)DailyRollingFileAppender 选项


-Threshold=WARN:指定日志消息的输出最低层次。


-ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。


-File=mylog.txt:指定消息输出到mylog.txt文件。


-Append=false:默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容。


-DatePattern='.'yyyy-ww:每周滚动一次文件,即每周产生一个新的文件。当然也可以指定按月、周、天、时和分。即对应的格式如下:


'.'yyyy-MM: 每月


'.'yyyy-ww: 每周 


'.'yyyy-MM-dd: 每天


'.'yyyy-MM-dd-a: 每天两次


'.'yyyy-MM-dd-HH: 每小时


'.'yyyy-MM-dd-HH-mm: 每分钟


 


4)RollingFileAppender 选项


-Threshold=WARN:指定日志消息的输出最低层次。


-ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。


-File=mylog.txt:指定消息输出到mylog.txt文件。


- Append=false:默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容。


-MaxFileSize=100KB: 后缀可以是KB, MB 或者是 GB. 在日志文件到达该大小时,将会自动滚动,即将原来的内容移到mylog.log.1文件。


-MaxBackupIndex=2:指定可以产生的滚动文件的最大数。


4.Layouts


Layout的定义格式:


部分一log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class


              //"fully.qualified.name.of.layout.class" 可以指定下面4个格式中的一个:


Layout类及其作用列表


Layout类名

作 用

org.apache.log4j.HTMLLayout

以HTML表格形式布局

org.apache.log4j.PatternLayout

可以灵活地指定布局模式

org.apache.log4j.SimpleLayout

包含日志信息的级别和信息字符串

org.apache.log4j.TTCCLayout

包含日志产生的时间、线程、类别等等信息

 


1)HTMLLayout 选项


-LocationInfo=true:默认值是false,输出java文件名称和行号。


-Title=my app file: 默认值是 Log4J Log Messages。


 


2)PatternLayout 选项


- ConversionPattern=%m%n :指定怎样格式化指定的消息。


 


3)XMLLayout  选项


-LocationInfo=true:默认值是false,输出java文件和行号。


 


部分二 log4j.appender.A1.layout.ConversionPattern=


%-4r %-5p %d{yyyy-MM-dd HH:mm:ssS} %c %m%n


这里需要说明的就是日志信息格式中几个符号所代表的含义:


1)-X号: X信息输出时左对齐。


2)%p: 输出日志信息优先级,即DEBUG,INFO,WARN,ERROR,FATAL。


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


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


5)%c: 输出日志信息所属的类目,通常就是所在类的全名。


6)%t: 输出产生该日志事件的线程名。


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


8)%x: 输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中。


9)%%: 输出一个"%"字符。


10)%F: 输出日志消息产生时所在的文件名称。


11) %L: 输出代码中的行号。


12)%m: 输出代码中指定的消息,产生的日志具体信息。


13)%n: 输出一个回车换行符,Windows平台为"\r\n",Unix平台为"\n"输出日志信息换行。


可以在%与模式字符之间加上修饰符来控制其最小宽度、最大宽度、和文本的对齐方式。如:


1)%20c:指定输出category的名称,最小的宽度是20,如果category的名称小于20的话,默认的情况下右对齐。


2)%-20c:指定输出category的名称,最小的宽度是20,如果category的名称小于20的话,"-"号指定左对齐。


3)%.30c:指定输出category的名称,最大的宽度是30,如果category的名称大于30的话,就会将左边多出的字符截掉,但小于30的话也不会有空格。


4)%20.30c:如果category的名称小于20就补空格,并且右对齐,如果其名称长于30字符,就从左边交远销出的字符截掉。


5.Apache Log介绍集


[1] Apache Log4j配置说明


[2] Apache Log4j使用实例


[3] Apache Commons-logging使用实例


[4] 如何自建appender扩展Log4j框架


6.参考资料


[1] 赵强,精通JSP编程,电子工业出版社


[2] Log4j配置过程



标签:输出,配置,指定,log4j,Apache,日志,默认值,true,Log4j
From: https://blog.51cto.com/u_16034393/6871737

相关文章

  • nginx跨域配置
    add_headerAccess-Control-Allow-Credentialstrue;add_headerAccess-Control-Allow-Headers$http_access_control_request_headers;add_headerAccess-Control-Allow-Methods'POST,GET,OPTIONS,DELETE,PUT,HEAD,PATCH';add_headerAccess-Control-All......
  • hubildx配置scss编译
    插件市场安装好sass后打开hbuildX:如下操作,找到这个文件位置修改对于文件属性即可。 "--output-style","compressed"含义是:生成的CSS文件为压缩风格。 "onDidSaveExecution":true含义是:当保存SCSS文件的时候,就会自定编译成CSS文件。 "${fileBasename}"是默认的目录......
  • TSINGSEE青犀视频汇聚融合平台EasyCVR的中性化版本如何配置?
    TSINGSEE青犀视频监控管理平台EasyCVR能在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、集中管理,实现视频资源的鉴权管理、按需调阅、全网分发、智能分析等,平台融合性强、开放度高、部署轻快,在智慧工地、智慧园区、智慧工厂、智慧码头、智慧水利等场景中有着广泛的应......
  • Linux安装配置nginx, 并且开机自启
    1.安装使用菜鸟教程的安装步骤这里的版本可以更换为自己想安装的即可注意:菜鸟教程的安装之后,nginx的安装目录是/usr/local/webserver/nginx,下面的开机自启也是按照这个目录2.开机自启2.1配置/etc/rc.local文件找到/etc/rc.local文件,在最后添加nginx安装目录/usr......
  • asp.net core之配置
    简介配置在asp.netcore中可以说是我们必不可少一部分。ASP.NETCore中的应用程序配置是使用一个或多个配置提供程序执行的。配置提供程序使用各种配置源从键值对读取配置数据,普通最常用的应该是下面几种:设置文件,例如appsettings.json环境变量命令行参数已安装或已创建......
  • 使用Docker安装Apollo并使用SpringBoot连接配置中心
    上篇文章我们学习了Apollo的本地安装,如果还不会本地安装的朋友可以查看之前的文章进行了解和学习链接地址(https://www.cnblogs.com/eternality/p/17583023.html),本篇我们学习怎么使用Docker安装Apollo及如何使用Java连接Apollo。阅读本篇文章需要了解docker安装容器相关的使用命令,......
  • Centos7安装docker并配置阿里云镜像加速
    前言提示:要安装DockerEngine,您需要一个CentOS7或8的维护版本。不支持或未测试存档版本。该centos-extras库必须启用。默认情况下,此存储库是启用的,但是如果已禁用它,则需要重新启用它。overlay2建议使用存储驱动程序。一、卸载旧版本我们目前现在安装的docker,大多是dockerCE版......
  • HJ66 配置文件恢复
    1.题目读题 HJ66 配置文件恢复 考查点 2.解法思路 代码逻辑 具体实现代码的主要步骤如下:首先,定义一个Map对象,使用HashMap类来创建,将配置命令作为键,将执行结果作为值,存储在Map中。然后,定义一个方法,用来判断输入的字符串是否能唯一匹配一个配置命令,并返回匹......
  • docker ssh 配置允许ip
    使用DockerSSH配置允许IPDocker是一种流行的容器化平台,能够帮助开发人员更轻松地构建、部署和管理应用程序。在使用Docker时,我们可能需要为容器配置SSH,以便能够通过SSH协议远程访问容器。本文将为您介绍如何使用DockerSSH配置允许特定IP地址访问容器,并提供相应的代码示例。1.......
  • 指定了ip为什么还有自动配置ipv4?
    刚买了一天双网卡的主机,插上网线配置上网地址,发现指定了ip为什么还有自动配置ipv4?将研究发现应该是电脑启用了自动配置IPv4功能,导致了固定IP无法分配给电脑,尝试用命令关闭自动配置IPv4功能:以管理员身份运行cmd.exe输入:netshwinsockresetcatalog回车输入:netshintipres......