Java日志Log4j 2简介

1 Java常用的日志框架

以下是五种常用的日志框架,包含官网链接

2 Log4j日志的level

  • ALL;打开所有等级的日志
  • Trace;追踪每一条执行语句
  • Debug;细粒度下为调试程序
  • Info;粗粒度为反映程序运行主要过程
  • Warn;警告信息
  • Error;错误信息
  • Fatal;导致程序退出的重大错误信息
  • OFF;关闭所有日志信息
    All----OFF日志等级从低到高,其中低等级可打印高等级日志。

3 Log4j 2配置

与log4j不同的是,Log4j 2已经不支持.properties为后缀的文件配置方法,配置文件只能为后缀格式为.xml,.json,.jsn的文件,以.xml文件为例 。

一个简单的xml配置框架,根据需要修改filename,pattern等即可

<?xml version="1.0" encoding="UTF-8"?>
<Configuration>  
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{yyyy-MM-dd HH:mm} %level %logger{36}-%msg%n" />
        </Console>
        <File name="MyTestLog" fileName="src/app/txt/MyTestLog.txt" immediateFlush="false" append="true">
            <PatternLayout pattern="%d{yyyy-MM-dd HH:mm} %level %logger{36}-%msg%n" />
        </File>
        <RollingFile name="RollingFile" fileName="src/app/txt/MyTestLog.txt"
                      filePattern="src/app/txt/MyTestLog-%d{yyyy-MM-dd}.txt">    
             <PatternLayout pattern="%d{yyyy-MM-dd HH:mm} %level %logger{36}-%msg%n" />
             <Policies>
                 <TimeBasedTriggeringPolicy/>
                 <SizeBasedTriggeringPolicy size="100 MB"/>
             </Policies>
         </RollingFile>
    </Appenders>
    <Loggers>
        <Root level="all">
            <AppenderRef ref="Console" level="error"/>
            <AppenderRef ref="MyTestLog" level="info" />
            <AppenderRef ref="RollingFile" level="info" />
    </Loggers>
</Configuration>

Configuration之下包含两部分内容:Appenders, Loggers.
Appenders是日志的输出目的地,总共有13中不同的Appenders,主要介绍其中三种

  • FileAppenders;输出到普通文件,参数name为Appenders的类型,文件的路径在filename参数中定义,输出日志的格式在patternLayout中定义,用%作为某特定字符串的标识符,如输出时间格式为yyyy-MM-dd,则pattern中为pattern= “%d{yyyy-MM-dd}”

  • ConsoleAppenders;输出到控制台,同样有name和pattern参数,target参数为“SYSTEM_OUT”或"SYSTEM_ERR"

  • RollingFileAppender;输出到文件,比FileAppenders功能更强大,当文件大小超过某一值时,生成一个新的文件继续输出,而这需要规定输出文件命名的格式。这种Appenders更符合实际需要,因为不太可能将日志信息都写到一个文件中。

    • filename;文件路径
    • filepattern;当发生rolling时, 文件的转移和命名规则
    • Policies;保存当前文件,新建日志文件的策略
    • TimeBased Triggering Policy;基于时间的rolling策略,可以修改interval属性来改变新建日志文件的时间
    • SizeBasedTriggeringPolicy:Policies,根据日志文件的大小,当大小超过size,新建log文件
    • OnStartup Triggering Policy;该策略不需要参数设置,它会自行判断log文件的创建时间和JVM的启动时间。若log文件的创建时间早于JVM的启动时间,保存原来的log文件,然后创建一个新的空白log文件。
    • CompositeTriggeringPolicy,复合型策略。

Loggers是日志器,包括Root日志器和自定义日志器,用Root作为默认的日志器,使用AppenderRef指定每个Logger的名字,level指定该类日志的等级;自定义时还需要指定每个Logger的名称name(name可以是包的名字)

    <Loggers>
    	<logger name="org.mybatis" level="INFO"></logger>
        <Root level="all">
            <AppenderRef ref="Console" level="error"/>
            <AppenderRef ref="MyTestLog" level="info" />
    </Loggers>

4 日志使用

配置好xml文件之后,将xml文件添加到项目所在的src或者包下,再添加Log4j的jar包就可以愉快地使用日志了。首先需要根据类名创建一个日志,假设类名为FlightScheduleAPP

private static final Logger logger=LogManager.getLogger(FlightScheduleApp.class);

然后就可以在程序中存储日志信息了,简单的使用方法:

logger.info("FlightScheduleApp系统退出");
logger.error("分配失败,重新选择");

根据之前的配置输出到文件或者控制台。效果如下
文件:
在这里插入图片描述
控制台:
在这里插入图片描述
Jar包:log4j 2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值