log4j2的配置和使用

log4j2

Apache Log4j 2是对Log4j的升级,Log4j 1提供了显著的改进。在Logback的架构中修复一些固有问题时,提供了许多可用的改进。包括更先进的过滤,重载配置,支持 Log4j 1.2, SLF4J, Commons Logging 。可以将以前旧版本的日志代码,通过更换jar的方式,轻松过渡到log4j2。

日志等级

trace<debug<info<warn<error
trace跟踪日志,一般不用
debug开发调试日志,一般用于跟踪错误
info输出重要信息
warn警告日志,
error错误日志

log4j2需要的jar包

如果你直接使用的log4j2只需要引入2个jar包
log4j-api-2.11.0.jar
log4j-core-2.11.0.jar
如果是以前使用把log4j1升级至log4j2则需要

<!--如果有用到slf4j的引入下面jar,包移除以前的关联的slf4j的jar包-->
<dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-slf4j-impl</artifactId>
            <version>2.5</version>
            <scope>runtime</scope>

        </dependency>

        <dependency>
 <!--log4j2核心jar包-->    <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>2.5</version>
            <scope>runtime</scope>
        </dependency>

        <dependency>  
 <!--log4j1升级log4j2需要引入的jar包,需要移除以前与log4j1相关的jar包-->            <groupId>org.apache.logging.log4j</groupId>  
            <artifactId>log4j-1.2-api</artifactId>  
            <version>2.5</version>  
        </dependency>

具体和外部api整合请参考官方文档
http://logging.apache.org/log4j/2.x/runtime-dependencies.html

log4j2.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xml>
<Configuration>
    <Appenders>
        <!--  控制台输出-->
        <Console name="STDOUT" target="SYSTEM_OUT">
            <PatternLayout pattern="信息: %-5p %C{1} (%F:%L) - %m%n"/>
        </Console>
        <!-- 普通文件输出 -->
        <File name="fileLog" fileName="logs/test.log">
            <PatternLayout>
            <Pattern>%d %-5p %C{1} (%F:%L) - %m%n</Pattern>
           </PatternLayout>
        </File>

        <!-- 回滚文件输出 在web环境中读取 tomcat根目录-->
        <RollingFile name="RollingFile" fileName="${sys:catalina.home}/webapps/logs/test.log"
            filePattern="${sys:catalina.home}/webapps/logs/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz">
            <PatternLayout>
                <Pattern>%d %-5p %C{1} (%F:%L) - %m%n</Pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy />
                <SizeBasedTriggeringPolicy size="250 MB" />
            </Policies>
            <DefaultRolloverStrategy max="20" />
        </RollingFile>
        <!--文件回滚输出,与前者的区别,采用nio读写日志  -->
        <RollingRandomAccessFile name="RollingRandomAccessFile" fileName="${sys:catalina.home}/webapps/logs/test.log"
                     filePattern="${sys:catalina.home}/webapps/logs/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz">
          <PatternLayout>
            <Pattern>%d %-5p %C{1} (%F:%L) - %m%n</Pattern>
          </PatternLayout>
          <Policies>
            <TimeBasedTriggeringPolicy />
            <SizeBasedTriggeringPolicy size="250 MB"/>
          </Policies>
        </RollingRandomAccessFile>

    </Appenders>
    <Loggers>
        <!-- 设置包的级别 -->
        <Logger name="com" level="debug"/>
        <!-- 总日志级别 -->
        <Root level="debug">
            <AppenderRef ref="STDOUT"/>
            <AppenderRef ref="fileLog"/>
            <AppenderRef ref="RollingRandomAccessFile"/>
            <AppenderRef ref="RollingFile"/>
        </Root>
    </Loggers>
</Configuration>

使用

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

public class Main {
    public static Logger logger = LogManager.getLogger(Main.class);

    public static void main(String[] args){
        logger.error("hello world");
    }
}

注意别引错了jar包

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值