首页 > 其他分享 >配置log4j

配置log4j

时间:2023-06-15 13:33:20浏览次数:28  
标签:输出 配置 appender apache org 日志 log4j


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

1. 配置文件
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.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 " );
    }   
 
}


运行一下,看看异常信息是不是保存在了一个单独的文件error.log中。


标签:输出,配置,appender,apache,org,日志,log4j
From: https://blog.51cto.com/u_16065168/6486334

相关文章

  • STM32低功耗配置
    一、电源介绍1.1STM32下的电源管理电源框图电源标号说明电压调节器复位后调节器总是使能。以3种不同的模式工作。运转模式:调节器以正常功耗模式提供1.8V电源(内核,内存和外设)。停止模式:调节器以低功耗模式提供1.8V电源,以保存寄存器和SRAM的内容。待机模式:调节器停止供......
  • 关于服务器上部署war后怎么配置读取外部的yml文件
    第一步打成war包1.pom.xml修改为<packaging>war</packaging>2.然后就是依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId><scope>provided</scope&g......
  • pyenv-win 安装与配置
    pyenv是一个简单的python版本管理工具。它使您可以轻松地在多个Python版本之间切换。它不直接支持Windows。@kirankotari创建了pyenv-win分支,用于Windows上的pyenv支持,本文以pyenv-win为例,使用pyenv请参考其官方介绍。pyenv开源地址:https://github.com/pyenv/pyenvpyenv-w......
  • DataX在Windows上实现Mysql到Mysql同步数据以及配置多个job/多个表同步定时执行bat
    场景DataX-阿里开源离线同步工具在Windows上实现Sqlserver到Mysql全量同步和增量同步:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/130330353DataX-在Windows上实现postgresql同步数据到mysql:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/130......
  • geteway 认证配置
    认证配置API网关Kong系列(四)认证配置 目前根据业务需要先介绍2种认证插件:KeyAuthentication及HMAC-SHA1认证  KeyAuthentication 向API添加密钥身份验证(也称为API密钥)。然后,消费者可以在 querystring 参数或 Header 头中添加其密钥,以验证其请求。 进入之前......
  • windows php7、PHPStudy(小皮)配置oracle扩展
    一、php配置oci扩展1.访问链接下载对应oracle版本的即时客户端(OracleInstantClient)https://www.oracle.com/database/technologies/instant-client/winx64-64-downloads.html  2.解压下载文件,将下面两个文件放入php目录下   3.访问链接https://windows.php.net/down......
  • v3路由配置
    importtype{RouteRecordRaw}from'vue-router';importtype{App}from'vue';import{createRouter,createWebHistory}from'vue-router';import{basicRoutes}from'./routes';import{REDIRECT_NAME}from&#......
  • apache/nginx配置
    apache配置文件里修改如下<IfModulemod_fcgid.c>AddHandlerfcgid-script.fcgiFcgidProcessLifeTime100000FcgidIOTimeout100000FcgidConnectTimeout100000#togetarounduploaderrorswhenuploadingimagesincreasethe......
  • 华为的MSTP+VRRP配置.
     AR11undoterminalmonitor2system-view3sysnameAR14interfaceGigabitEthernet0/0/05ipaddress192.168.0.2255.255.255.2526quit7interfaceGigabitEthernet0/0/18ipaddress192.168.0.6255.255.255.2529quit10interfaceloopback01......
  • VScode配置C语言环境
    0.前言运行系统为【Windows11专业版】1.安装VScode 官网下载 VScode或使用电脑自带【MicrosoftStore】(微软商店)下载。2.运行配置VScode3.安装编译器(MinGW-W64GCC)下载地址官网:MinGW-w64蓝奏云:https://hyborn.lanzouw.com/iqb1x0i0wwjc密码:0000下载完成后把压缩......