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)
  • 相关阅读:
    哈希算法是怎么实现的
    高并发下日志组件的各种实现方式
    算法是如何影响程序编码方式的
    <<.NET B/S 架构实践>> 几种概念区别
    如何扩大系统盘空间
    区别:ASP.NET MVC的Model、DTO、Command
    能递归检查DataAnnotations的验证函数
    NuGet的本地服务器安装与Package的发布(呕吐)
    多模块分布式系统的简单服务访问
    多模块后带来的问题解决方法
  • 原文地址:https://www.cnblogs.com/cnsec/p/13286748.html
Copyright © 2011-2022 走看看