zoukankan      html  css  js  c++  java
  • 【JavaWeb】Log4j2的使用(二)

    将日志保存到文件

    • 添加日志输出目的地(Appender:附加器)

    在Appender节点下添加:

        <File name="logfile" fileName="C:/Users/Administrator/Desktop/my.log">  
                <PatternLayout pattern="%d{HH:mm:ss} %level : %msg   %l%n" />  
        </File>

    其中”name”为目的地名称,”fileName”为输出的文件名

    • 在Loggers节点下添加:
        <Logger name="mylog" level="info" additivity="false">
                <AppenderRef ref="logfile" />
        </Logger

    其中”name”为目的地名称,”level”为日志等级,”additivity”为是否继承父级的目的地,默认是true。如果设为false则只会在自己的目的地输出,这里设为false。

    关于additivity的举例:

    Appender下有两个输出源,一个是控制台,一个是文件,如下:

            <Appenders>
            <Console name="Console" target="SYSTEM_OUT">
                <PatternLayout pattern="%d{HH:mm:ss} %level : %msg   %l%n" />
            </Console>
    
            <File name="logfile" fileName="C:/Users/Administrator/Desktop/my.log">  
                <PatternLayout pattern="%d{HH:mm:ss} %level : %msg   %l%n" />  
            </File>  
            </Appenders>

    Loggers下有两个日志,mylog(自定义的)和Root(根日志)

        <Loggers>
            <Logger name="mylog" level="info" additivity="false">
                <AppenderRef ref="logfile" />
            </Logger>
            <Root level="info">
                <AppenderRef ref="Console" />
            </Root>
        </Loggers>

    additivity=true时,控制台输出如下

    additivity=false时,因为只会在自己的输出源输出,也就是只会输出到文件,所以控制台不会输出,只有跟日志Root的输出。控制输出如下:

        哈哈

    日志文件输出如下

        21:10:58 INFO : 信息   log4j.Main.main(Main.java:10)
        21:10:58 WARN : 警告   log4j.Main.main(Main.java:11)
        21:10:58 ERROR : 错误   log4j.Main.main(Main.java:12)
  • 相关阅读:
    1066 Bash 游戏
    1070 Bash 游戏 V4
    codevs 2928 你缺什么
    分块、线段树练习
    Father Christmas flymouse
    codevs 2494 Vani和Cl2捉迷藏
    codevs 2144 砝码称重2
    国王游戏
    codevs 1664 清凉冷水
    2015ACM/ICPC亚洲区沈阳站 Pagodas
  • 原文地址:https://www.cnblogs.com/cnsec/p/13286748.html
Copyright © 2011-2022 走看看