• 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

  • 相关阅读:
    关于在MAC上进行 LARAVEL 环境 Homestead 安装过程记录
    js 贷款计算器
    js 实现阶乘
    js 两点间距离函数
    composer Your requirements could not be resolved to an installable set of packages
    vue 项目优化记录 持续更新...
    vue 项目打包
    vue 真机调试页面出现空白
    vue 真机调试
    谈谈-Android状态栏的编辑
  • 原文地址:https://www.cnblogs.com/XJJD/p/7420054.html
Copyright © 2020-2023  润新知