0
点赞
收藏
分享

微信扫一扫

在java中使用log4j


简单使用log4j


要在java项目中使用log4j,需要下载log4j-x.x.x.jar。如果是使用的mvn或gradle构建项目,则添加依赖就可以了,我的pom.xml如下:


<dependencies>
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
    </dependency>
</dependencies>



这csdn是不是有bug啊,我贴的代码明明没有前面的html属性,我的内容是从<dependencies>开始的,无语



log=D:/log4j
log4j.rootCategory=INFO, stdout,file
log4j.rootLogger=INFO, stdout,file

### stdout ###
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=%d{HH:mm:ss} %t %p %C.%M(%L) %m%n

log4j.org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager=INFO
log4j.org.apache.http.impl.nio=INFO

# Define the file appender
log4j.appender.file=org.apache.log4j.RollingFileAppender
#log4j.appender.file.File=${log}/log.log
log4j.appender.file.File=./log.log

# Define the layout for file appender
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.conversionPattern=%d{HH:mm:ss} %t %p %C.%M(%L) %m%n
# File max size
log4j.appender.file.MaxFileSize=100MB
# Keep three backup files.
log4j.appender.file.MaxBackupIndex=3650


java类如下:




public class Log4jExample {
    public static void main(String[] args){
        Logger log = Logger.getLogger(
                Log4jExample.class.getName());

        log.debug("Hello this is an debug message");
        log.info("Hello this is an info message");
    }
}





运行后得到的结果如下:


在java中使用log4j_日志系统




同时在项目目录下可以看到日志文件




在java中使用log4j_apache_02


log4j与slf4j结合


log4j是一个日志系统,slf4j是一个日志系统的封装,对外提供统一的API。


使用slf4j需要下载slf4j-api-x.x.x.jar 它提供对外一致的API接口,其本身不提供日志实现。


如果想把slf4j绑定到log4j,则需要下载slf4j对log4j的相应”驱动”——slf4j-log4j12-x.x.x.jar,这样就可以使用slf4j提供的API,用log4j实现输出日志了。


所谓驱动,就是实现了slf4j的一些接口,用你喜欢的日志系统打日志。


slf4j还支持好多日志系统,并提供了相应的“驱动”包,例如:


slf4j-jdk14-x.x.x.jar是为java.util.logging提供的驱动


slf4j-simple-x.x.x.jar直接绑定System.err


lf4j-jcl-x.x.x.jar是为commons-logging提供的驱动


logback-classic-x.x.x.jar是为logback提供的驱动


官方的网站:http://www.slf4j.org/manual.html 


为何使用slf4j


我们在开发过程中可能使用各种log,每个Log有不同的风格、布局,如果想灵活的切换那么slf4j是比较好的选择。


如何使用slf4j


要使用slf4j,我们需要添加jar包或者添加依赖,如下:


<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.21</version>
</dependency>

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.7.21</version>
</dependency>


log4j.properties我们使用和上面相同的配置,这里不再赘述,看下java类




public class Slf4jExample {
    public static void main(String[] args)
            throws IOException,SQLException {
        Logger logger = LoggerFactory.getLogger(Slf4jExample.class);
        logger.info(">>>>>>{}","Hello this is an info message");
    }
}




不同点就是slf4j有一个占位符属性,这不仅降低了你代码中字符串连接次数,而且还节省了新建的String对象。通过使用SLF4J,你可以在运行时延迟字符串的建立,这意味着只有需要的String对象才被建立。


log4j与Lombok结合使用


下面给大家介绍一个更高大上的方式,如果大家使用过Lombok,一定会注意到Lombok本身就封装了slf4j,这样我们就不用使用代码去获得Logger 对象了,首先需要添加依赖:


<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.16.18</version>
    <scope>provided</scope>
</dependency>


使用的时候便十分方便了,只需简单的一句话就搞定


@Slf4j
public class LombokExample {
    public static void main(String[] args) {
        log.info(">>>>>>{}", "Hello this is an info message");
    }
}


效果是一样的,我就不再展示了

参考:




http://www.jb51.net/article/41001.htm



http://www.yiibai.com/log4j/log4j_sample_program.html



http://zhaoyanblog.com/archives/167.html





举报

相关推荐

0 条评论