log4j及log4j2学习

log4j

1. log4j简介

  1. 定义每一条日志信息的级别,更加细致地控制日志的生成过程;
  2. 控制每一条日志的输出格式;
  3. 控制日志信息输送的目的地是控制台、文件等。

log4j包含三个组件,分别是 Loggers(记录器-区分日志类别)、Appenders(输出源-日志输出的地方)、Layouts(日志布局-日志的输出形式)

  1. Loggers:负责产生日志,能够对日志进行筛选,控制什么样的日志可以被输出,什么样的日志应该被忽略。可分为五个级别:DEBUG、INFO、WARN、ERROR、FATAL,从左到右级别逐级升高。
  2. Appenders:允许把日志输出到不同的地方,如控制台(Console)、文件(Files)、根据天数或者文件大小产生新的文件、以流的形式发送到其它地方等。一个Appender实例就代表了一个目的地。一个记录器(Logger)可以拥有多个Appender。
  3. Layouts:自定义格式化的日志输出样式,Layouts提供四种日志输出样式,如根据HTML样式、自由指定样式、包含日志级别与信息的样式和包含日志时间、线程、类别等信息的样式。一个Appender只能有一个Layout组件。

2. log4j使用配置

2.1 实例化Logger

public static Logger getLogger( String name);

2.2 读取配置文件

有三种方式,分别是:
BasicConfigurator.configure():自动快速地使用缺省Log4j环境。
PropertyConfigurator.configure(String configFilename):读取使用Java的特性文件编写的配置文件。
DOMConfigurator.configure(String filename):读取XML形式的配置文件。

2.3 日志信息录入

分为五种级别的日志信息:
Logger.debug(Object message);//调试信息
Logger.info(Object message);//一般信息
Logger.warn(Object message);//警告信息
Logger.error(Object message);//错误信息
Logger.fatal(Object message);//致命错误信息

2.4 配置文件 properties形式
  1. 根Logger
    log4j.rootLogger = [level], appenderName1, appenderName2, …
    level: 是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或自定义的级别;
    appenderName: 是指定日志信息输出目的地,可同时指定多个输出目的地。
  2. 日志信息输出目的地
    log4j.appender.appenderName = xxx xxx可为以下五个appender:
    org.apache.log4j.ConsoleAppender(控制台)
    org.apache.log4j.FileAppender(文件)
    org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
    org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
    org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
  3. 日志信息样式
    log4j.appender.appenderName.layout = xxx xxx可为以下四种layout:
    org.apache.log4j.HTMLLayout(以HTML表格形式布局),
    org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
    org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
    org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

log4J2

1. log4J2简介

  1. Log4j 2被设计为可以作为审计框架使用, Log4j2的Appender可以设置为允许将异常渗透给应用程序。
  2. Log4j 2包含基于LMAX Disruptor库的下一代异步日志器。在多线程情况下,异步日志器具有更高的吞吐性能以及更低的延迟。
  3. Log4j 2具备插件系统,使得它非常容易通过新的Appender、Filter、Layout、Lookup和Pattern Converter来扩展框架,且不需要对Log4j做任何修改。
  4. 支持自定义日志级别,可在代码或配置文件中自定义。
  5. 支持Lambda表达式,代码更简洁明了。
  6. 支持Message对象,Message允许复杂的结构体在日志系统中传输,且可以被高效地操作。用户可以自由地创建他们自己的Message类型,并编写自定义的Layout、Filter和Lookup来操作它们。

2. log4j2日志配置

Log4j 2的配置可以通过以下4种方式之一完成:

  1. 通过以XML、JSON、YAML或属性格式编写的配置文件。
  2. 以编程方式,通过创建ConfigurationFactory和配置实现。
  3. 通过调用配置接口中公开的API,以编程方式将组件添加到默认配置
  4. 以编程方式,通过调用内部Logger类上的方法
2.1 示例xml配置文件
<?xml version="1.0" encoding="UTF-8"?>
<!-- log4j2使用说明:
1. 实例化logger:
private static final Logger logger = LogManager.getLogger(实际类名.class.getName());

2、日志说明:
(1)请根据实际情况配置各项参数
(2)需要注意日志文件备份数和日志文件大小,注意预留目录空间
(3)实际部署的时候backupFilePatch变量需要修改成linux目录
 -->
<configuration status="debug">
    <Properties>
        <Property name="fileName">loginModule.log</Property>
        <Property name="backupFilePatch">D:/workspace/workspace-jee/HelloSpring/hello-spring4/log/</Property>
      </Properties>
    <!--先定义所有的appender-->
    <appenders>
        <!--这个输出控制台的配置-->
        <Console name="Console" target="SYSTEM_OUT">
             <!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)-->
            <ThresholdFilter level="trace" onMatch="ACCEPT" onMismatch="DENY" />
            <!-- 输出日志的格式-->
            <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n" />
        </Console>

        <!--这个会打印出所有的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档-->
        <RollingFile name="RollingFile" fileName="${backupFilePatch}${fileName}"
            filePattern="${backupFilePatch}$${date:yyyy-MM}/app-%d{yyyyMMddHHmmssSSS}.log.gz">
            <PatternLayout
                pattern="%d{yyyy.MM.dd 'at' HH:mm:ss.SSS z} %-5level %class{36} %L %M - %msg%xEx%n" />

            <!-- 日志文件大小 -->
            <SizeBasedTriggeringPolicy size="20MB" />
            <!-- 最多保留文件数 -->
            <DefaultRolloverStrategy max="20"/>
        </RollingFile>
    </appenders>

    <!--然后定义logger,只有定义了logger并引入的appender,appender才会生效-->
    <loggers>
        <!--建立一个默认的root的logger-->
        <Logger name="org.apache.log4j.xml" level="trace"
            additivity="true">
            <AppenderRef ref="RollingFile" />
        </Logger>
        <Root level="error">
            <AppenderRef ref="Console" />
        </Root>
    </loggers>
</configuration>
2.2 maven配置

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值