首页 > 其他分享 >log4j2常见配置

log4j2常见配置

时间:2023-05-06 13:00:10浏览次数:49  
标签:02 输出 配置 常见 te apache org Foo log4j2

log4j2常见配置

转载自:https://www.cnblogs.com/gavinYang/p/8168928.html

  1. 依赖jar:
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>2.9.1</version>
</dependency>
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-api</artifactId>
    <version>2.9.1</version>
</dependency>

在log4j2中配置文件可以为.xml,.json或者.jsn,默认情况下,系统选择configuration文件的优先级如下:

1.log4j-test.json或者log4j-test.jsn
2.log4j2-test.xml
3.log4j.json或者log4j.jsn
4.log4j2.xml

  1. 日志级别 从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果设置为WARN,则低于WARN的信息都不会输出。

  2. Appender 为日志输出目的地,常用的三种:

  • Console:将输出到控制台
  • File:将结果输出到一个指定文件中。
  • RollingFile:和File一样,RollingFile则较为灵活,可以按照文件大小拆分文件
  1. PatternLayout 控制输出内容的节点,包括类名、时间、行号、日志级别、序号等都可以控制,同时还可以指定日志格式,可以使用正则表达式处理输出结果。用\输出\,用%%输出%

%c,%c{参数},%C{参数},%class{参数}:输出类名称

%c org.apache.com.te.Foo org.apache.com.te.Foo
%c org.apache.com.te.Foo Foo
%c org.apache.com.te.Foo te.Foo
%c org.apache.com.te.Foo o.a.c.t.Foo
%c org.apache.com.te.Foo o.a.!.!.Foo
%c{.} org.apache.com.te.Foo ….Foo

%d{参数}:输出时间。参数可以是text.SimpleDateFormat字符拼接而成,也可以使用系统默认

%d 2012-11-02 14:34:02,781
%d 2012-11-02T14:34:02,781
%d 20121102T143402,781
%d 14:34:02,781
%d 02 Nov 2012 14:34:02,781
%d 20121102143402781
%d 14:34:02,781
%d 02 Nov 2012 14:34:02,781
%d{HH:mm:ss} 18:34:02
%d 1351866842
%d 1351866842781

%l 和 %L:输出行号,%l 输出完整的包路径及行号,%L 仅输出行号。此参数影响日志输出性能
%m或%msg或%message:输出日志信息
%M或%method:输出方法名
%level{参数1}:不写参数时,输出日志级别。第一个参数用来替换日志信息的级别,格式为:{level=label, level=label, …},即使用label代替的字符串替换level,例如 %level{WARN=W, DEBUG=D, ERROR=E, TRACE=T, INFO=I},则logger.warn输出W等等

  1. log4j2.xml 配置文件
<?xml version="1.0" encoding="UTF-8"?>    
<configuration status="debug">  
 
     <!-- 变量配置 -->
    <Properties>
        <Property name="root_path">${sys:catalina.home}</Property>
    </Properties> 
 
    <!--先定义所有的appender -->  
    <appenders>  
        <!--这个输出控制台的配置 -->  
        <Console name="Console" target="SYSTEM_OUT">  
            <!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch) -->  
            <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>  
            <!--这个都知道是输出日志的格式 -->  
            <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %c %L %M - %msg%xEx%n"/>  
        </Console>  
           
        <!--文件会打印出所有信息,这个log每次运行程序会自动清空,由append属性决定,这个也挺有用的,适合临时测试用 -->  
        <!--append为TRUE表示消息增加到指定文件中,false表示消息覆盖指定的文件内容,默认值是true -->  
        <File name="log" fileName="${root_path}/logs/logdemo.log" append="true">  
            <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %c %L %M - %msg%xEx%n"/>  
        </File>  
           
        <!--添加过滤器ThresholdFilter,可以有选择的输出某个级别以上的类别  onMatch="ACCEPT" onMismatch="DENY"意思是匹配就接受,否则直接拒绝  -->  
        <File name="ERROR" fileName="${sys:catalina.home}/logs/logdemo_error.log">  
            <ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>  
            <PatternLayout pattern="%d{yyyy.MM.dd 'at' HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n"/>  
        </File>  
   
        <!--这个会打印出所有的信息,每次大小超过size,则这size大小的日志会自动存入按年-月-日建立的文件夹下面并进行压缩,作为存档 -->  
        <RollingFile name="RollingFile" fileName="${sys:catalina.home}/logs/logdemo_web.log"  
                     filePattern="${sys:catalina.home}/logs/$${date:yyyy-MM-dd}/logdemo_web-%d{yyyy-MM-dd}-%i.log.gz">  
            <PatternLayout pattern="%d{yyyy-MM-dd 'at' HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n"/>  
            <!-- 设置日志文件大小超过多少后开始进行压缩 单位:KB/MB/GB -->
            <SizeBasedTriggeringPolicy size="10MB"/>  
            <!-- DefaultRolloverStrategy属性如不设置,则默认为最多同一文件夹下7个文件,超过后则会覆盖之前的,这里设置了20 -->
            <DefaultRolloverStrategy max="20"/>
        </RollingFile>  

<!--每分钟产生一个文件,历史的日志会自动存入按年-月-日建立的文件夹下面并进行压缩,作为存档 -->  
<RollingFile name="DailyRollingFile" fileName="${sys:catalina.home}/logs/logdemo_all.log"  
             filePattern="${sys:catalina.home}/logs/$${date:yyyy-MM-dd}/logdemo_all-%d{yyyy-MM-dd_HH-mm}-%i.log">               
    <PatternLayout pattern="%d{yyyy-MM-dd 'at' HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n"/>  
           <TimeBasedTriggeringPolicy interval="1" modulate="true" />  
</RollingFile> 
    </appenders>  
       
    <!--然后定义logger,只有定义了logger并引入的appender,appender才会生效 -->  
    <loggers>  
        <!--建立一个默认的root的logger,只有能一个root -->  
        <root level="debug">  
            <appender-ref ref="RollingFile"/>  
            <appender-ref ref="Console"/>  
            <appender-ref ref="ERROR" />  
            <appender-ref ref="log"/>  
        </root>  
       <!-- 设置指定包输出指定的日志级别 -->
        <logger name="com.gavin" level="warn"/>
    </loggers>  
</configuration>

标签:02,输出,配置,常见,te,apache,org,Foo,log4j2
From: https://www.cnblogs.com/JaxYoun/p/17376920.html

相关文章

  • logback常见配置
    logback常见配置依赖jar包<!--https://mvnrepository.com/artifact/ch.qos.logback/logback-core--><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-core</artifactId><version>......
  • Ubuntu 安装 Docker Engine 并配置用户权限
    1.删除旧版本Docker,没有可以跳过sudoapt-getremovedockerdocker-enginedocker.iocontainerdrunc2.更新apt包索引并安装包,以允许apt通过HTTPS使用存储库sudoapt-getupdatesudoapt-getinstallca-certificatescurlgnupg3.使用以下命令设置存储库echo\"d......
  • log4j常见配置
    log4j常见配置转载自:https://www.cnblogs.com/gavinYang/p/8168901.html依赖jar<dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency>Level:日志输出的几种级别F......
  • idea配置
    一、ideaIDEA全称IntelliJIDEA,是用于java语言开发的集成环境IDE(IntegratedDevelopmentEnvironment),也可用于其他语言的开发。IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE支持、Ant、JUnit、CVS整合、代码审查、创新的GUI设计......
  • 使用nacos配置,启动服务时一直报 Error starting ApplicationContext. To display the
    报错日志如下:ErrorstartingApplicationContext.Todisplaytheconditionsreportre-runyourapplicationwith'debug'enabled.-2023-05-0509:46:02.328[TID:N/A]ERROR8236---[main]o.s.b.d.LoggingFailureAnalysisReporter:***********......
  • 配置wordpress:更换网站ico图标(wordpress 6.2)
    一,更换ico1,代码:<linkrel="shortcuticon"href="http://wp.liuhongdi.com/favicon.ico?v=35"type="image/x-icon"/>2,添加代码:3,上传文件到wordpress根目录,如图:二,测试效果:说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest......
  • VUE常见问题,持续更新
    最新接触VUE3,作为新手在使用TS语法时经常会遇到一些各种各样的问题,在些做个归纳。1.直接引用.json文件最报错TS2732:Cannotfindmodule'@/data.json'.Considerusing'--resolveJsonModule'toimportmodulewith&:在tsconfig.json中添加 "resolveJsonModule":true,......
  • 使用properties配置jdbc信息报错问题
    今天使用properties文件来配置mysql驱动,url,user,password,然后配置到spring-dao.xml(spring和mybatis整合文件)中运行后报错java.sql.SQLException:Accessdeniedforuser'ASUS'@'localhost'(usingpassword:YES)用户ASUS访问被拒绝,在properties中user配置的是root。解决方法:......
  • 解决IDEA中每次都要重复配置Maven问题
    IDEA中每次都要重复配置Maven问题......
  • JDK----下载、作用、安装、配置
      官网JDK下载地址http://www.oracle.com/technetwork/java/javase/downloads/index.html   JDK介绍:java开发、调试需要安装JDK(包括javac编译、JRE等)只运行java程序只需安装JRE(包括javaAPI类库和JVM虚拟机)JRE  JDK环境变量配置及作用:安装完JDK后在cmd中输入java报错“不是内......