zoukankan      html  css  js  c++  java
  • slf4j+log4j的初次使用


    关于这两者的组合应用带来的好处,google都有 就不说了。


    首先说下配置,

     工作笔记:在myeclipse 中创建一个java project

       创建一个 TestSlf4J 类

    package com.joyce.quartz.main;
    import org.slf4j.Logger;
    
    import org.slf4j.LoggerFactory;
    public class TestSlf4J { 
    private static final Logger logger =LoggerFactory.getLogger(TestSlf4J.class); 
    public static void main(String[] args) { 
    logger.error("Hello world {}"); 
    System.out.println("2323");
    try {
    
    int i = 1/0;
    } catch (Exception e) {
    logger.error("出现异常",e);
    
    }
    } 
    }



    同时把slf4j-api-1.1.jar    slf4j-log4j12-1.6.1.jar   log4j-1.2.16.jar 放入项目里。

     

    再添加一个log4j.properties

    # An example log4j configuration file that outputs both to System.out
    # and a file named 'test'.
    
    # For the general syntax of property based configuration files see the
    # documenation of org.apache.log4j.PropertyConfigurator.
    
    # WARNING: Location information can be useful but is very costly in
    # terms of computation.
    
    # The root logger uses the appender called A1. 
    
    # The root logger uses the appenders called A1 and A2. Since no level
    # is specified, note the empty string between the comma (",") and the
    # equals sign ("="), the level of the root logger remains
    # untouched. Log4j always initializes the level for the root logger to
    # DEBUG. The root logger is the only logger that has a default
    # level. Bu default, all other loggers do not have an assigned level,
    # such that they inherit their level instead.
    
    log4j.rootLogger=, A1, A2
    
    # A1 is set to be ConsoleAppender sending its output to System.out
    log4j.appender.A1=org.apache.log4j.ConsoleAppender
    
    
    # A1 uses PatternLayout.
    log4j.appender.A1.layout=org.apache.log4j.PatternLayout
    
    # The conversion pattern consists of date in ISO8601 format, level,
    # thread name, logger name truncated to its rightmost two components
    # and left justified to 17 characters, location information consisting
    # of file name (padded to 13 characters) and line number, nested
    # diagnostic context, the and the application supplied message
    
    log4j.appender.A1.layout.ConversionPattern=%d %-5p [%t] %-17c{2} (%13F:%L) %3x - %m%n
    
    # Appender A2 writes to the file "test".
    log4j.appender.A2=org.apache.log4j.FileAppender
    log4j.appender.A2.File=e:/test.log
    
    # Truncate 'test' if it aleady exists.
    log4j.appender.A2.Append=false
    
    # Appender A2 uses the PatternLayout.
    log4j.appender.A2.layout=org.apache.log4j.PatternLayout
    log4j.appender.A2.layout.ConversionPattern=%-5r %-5p [%t] %c{2}   %d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p]%m%n
    
    
    
    
    # In this example, we are not interested in INNER loop or SWAP
    # messages.  You might try to set INNER and SWAP to DEBUG for more
    # verbose output.
    
    log4j.logger.org.apache.log4j.examples.SortAlgo.INNER=INFO
    log4j.logger.org.apache.log4j.examples.SortAlgo.SWAP=INFO
    
                                                                                                                                                  


    项目结构如图:

                    

    最后 运行TestSlf4J类在e盘就生成了一个test.log文件  生成内容如下:


    注意:

    slf4j-log4j12-1.6.1.jar是连接包,我们在java里直接用slf4j创建的log,如果没有这个连接包,是创建不出log的

    还要注意的是,在没加这个连接包的时候,

    会报 

    SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder”

    有解决办法是说:下载slf4j-nop.jar,添加到路径中,就解决问题了
    但我这边是不能下这个包,加了会报错

    所以。总的加那三个包就可以了

    版权声明:本文为博主原创文章,未经博主允许不得转载。

    today lazy . tomorrow die .
  • 相关阅读:
    小白学编程,C++ 初始化的坑,你避开了吗?
    学完C语言还是懵的?大学生:我可能学了个假的C语言
    不知道如何入门编程?最全在线教程网站汇总来了,还不赶快收藏
    Linux 之父对 C++ 进行了炮轰,C++不值得推荐?
    没有内存泄漏的C++代码,如何用RAII编写,你知道吗
    菜鸟学编程,不懂C++ this指针?还不赶快来学一学
    在7天-第2天逐步学习MVC(模型视图控制器)
    ASP。NET MVC vs ASP。NET WebForm性能比较
    学习MVC项目在7天-奖金的第二天
    学习MVC项目在7天-奖金的第一天
  • 原文地址:https://www.cnblogs.com/france/p/4808585.html
Copyright © 2011-2022 走看看