【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)
posted @ 2017-12-11 21:18  SEC.VIP_网络安全服务  阅读(81)  评论(0编辑  收藏  举报