zoukankan      html  css  js  c++  java
  • Log4j详解

    第一种:不用配置文件,使用默认的配置文件

    package log4j;
    import org.apache.log4j.BasicConfigurator; import org.apache.log4j.Level; import org.apache.log4j.Logger;
    public class TestLog4j { static Logger logger = Logger.getLogger(TestLog4j.class); public static void main(String[] args) throws InterruptedException {
        //使用默认的配置文件 BasicConfigurator.configure();
        //设置打印级别 logger.setLevel(Level.DEBUG); logger.trace(
    "跟踪信息"); logger.debug("调试信息"); logger.info("输出信息"); logger.warn("警告信息"); logger.error("错误信息"); logger.fatal("致命信息"); } }
    使用Log4j

    第二种:使用log.properties配置(在src里面配置此文件)

    log4j.rootLogger=debug, stdout, R

    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

    # Pattern to output the caller's file name and line number.
    log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n

    log4j.appender.R=org.apache.log4j.RollingFileAppender
    log4j.appender.R.File=example.log

    log4j.appender.R.MaxFileSize=100KB
    # Keep one backup file
    log4j.appender.R.MaxBackupIndex=5

    log4j.appender.R.layout=org.apache.log4j.PatternLayout
    log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n

    package log4j;
     
    import org.apache.log4j.Logger;
    import org.apache.log4j.PropertyConfigurator;
     
    public class TestLog4j {
        static Logger logger = Logger.getLogger(TestLog4j.class);
        public static void main(String[] args) throws InterruptedException {
            PropertyConfigurator.configure("D:\project\log4j\src\log4j.properties");
            for (int i = 0; i < 5000; i++) {
                logger.trace("跟踪信息");
                logger.debug("调试信息");
                logger.info("输出信息");
                logger.warn("警告信息");
                logger.error("错误信息");
                logger.fatal("致命信息");
            }
        }
    }

    TestLog4j

    log4j日志输出格式一览:
    %c 输出日志信息所属的类的全名
    %d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy-MM-dd HH:mm:ss },输出类似:2002-10-18- 22:10:28
    %f 输出日志信息所属的类的类名
    %l 输出日志事件的发生位置,即输出日志信息的语句处于它所在的类的第几行
    %m 输出代码中指定的信息,如log(message)中的message
    %n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”
    %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL。如果是调用debug()输出的,则为DEBUG,依此类推
    %r 输出自应用启动到输出该日志信息所耗费的毫秒数
    %t 输出产生该日志事件的线程名

    所以:
    %5p [%t] (%F:%L) - %m%n 就表示
    宽度是5的优先等级 线程名称 (文件名:行号) - 信息 回车换行

    第三种:使用log4j.xml配置(在src里面配置此文件)

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE log4j:configuration PUBLIC "-//log4j/log4j Configuration//EN" "log4j.dtd">

    <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

    <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
    <layout class="org.apache.log4j.PatternLayout">
    <param name="ConversionPattern" value="%d %-5p %c.%M:%L - %m%n"/>
    </layout>
    </appender>

    <!-- specify the logging level for loggers from other libraries -->
    <logger name="com.opensymphony">
    <level value="ERROR" />
    </logger>

    <logger name="org.apache">
    <level value="ERROR" />
    </logger>
    <logger name="org.hibernate">
    <level value="ERROR" />
    </logger>

    <!-- for all other loggers log only debug and above log messages -->
    <root>
    <priority value="ERROR"/>
    <appender-ref ref="STDOUT" />
    </root>

    </log4j:configuration>

    package log4j;
     
    import org.apache.log4j.Logger;
    import org.apache.log4j.PropertyConfigurator;
     
    public class TestLog4j {
        static Logger logger = Logger.getLogger(TestLog4j.class);
        public static void main(String[] args) throws InterruptedException {
            PropertyConfigurator.configure("D:\project\log4j\src\log4j.xml");
            for (int i = 0; i < 5000; i++) {
                logger.trace("跟踪信息");
                logger.debug("调试信息");
                logger.info("输出信息");
                logger.warn("警告信息");
                logger.error("错误信息");
                logger.fatal("致命信息");
            }
        }
    }

    修改TestLog4j

  • 相关阅读:
    设置打印 页面 方向与大小
    设置对齐
    设置字体
    SVN版本管理与大型代码上线方案(一)
    项目案例之Pipeline流水线及流水线发布PHP项目(二)
    Jenkins企业应用进阶详解(一)
    iptables 防火墙(下)
    iptables 防火墙(上)
    zabbix生产环境案例(三)
    深入理解zabbix(二)
  • 原文地址:https://www.cnblogs.com/XJJD/p/7420054.html
Copyright © 2011-2022 走看看