• Log的相关用法


    1、最好用静态final定义Log变量

    private static final Log log = LogFactory.getLog(MyTest.class);

    这样做的好处有三:

    • 可以保证线程安全
    • 静态或非静态代码都可用
    • 不会影响对象序列化

    2、代码中实现log日志的输出【首先项目工程下,要有相关的jar】

      1)log4g.properties配置文件的内容【需要配置些日志输出路径,及规范输出文件名格式】

    log4j.rootLogger = debug,stdout,D,E
    
    ### 输出信息到控制抬 ###
    log4j.appender.stdout = org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.Target = System.out
    log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
    
    ### 输出DEBUG 级别以上的日志到=E://logs/error.log ###
    log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
    log4j.appender.D.File = E://logs/log.log
    log4j.appender.D.Append = true
    log4j.appender.D.Threshold = DEBUG 
    log4j.appender.D.layout = org.apache.log4j.PatternLayout
    log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n
    
    ### 输出ERROR 级别以上的日志到=E://logs/error.log ###
    log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
    log4j.appender.E.File =E://logs/error.log 
    log4j.appender.E.Append = true
    log4j.appender.E.Threshold = ERROR 
    log4j.appender.E.layout = org.apache.log4j.PatternLayout
    log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n
    

      2)具体的实现类【Log4gTest.java】

    package com.log4g;
    import org.apache.log4j.Logger;
    public class Log4gTest {
    	private static final Logger logger = Logger.getLogger(Log4gTest.class);  
    
        public static void main(String[] args) {  
            // 记录debug级别的信息  
            logger.debug("This is debug message.debug的测试");  
            // 记录info级别的信息  
            logger.info("This is info message.info的测试");  
            // 记录error级别的信息  
            logger.error("This is error message.error的测试");  
        }  
    }
    

      运行得到的结果是:

      然后再找到相关的e盘下,就会发现有相关日志文件的存在,即为成功!

       

  • 相关阅读:
    可重入锁 RLOCK(转)
    python 全局变量的简单理解
    urlopen设置代理方法
    python is id == 的差别,cmp方法
    FutureTask
    Java基础复习
    计算机编程底层基础
    Microsoft.NET框架程序设计20 CLR寄宿、应用程序域、反射
    Microsoft.NET框架程序设计19 自动内存管理(垃圾收集)
    Microsoft.NET框架程序设计17 委托
  • 原文地址:https://www.cnblogs.com/FanSunny/p/5627573.html
Copyright © 2020-2023  润新知