log4j,slf4j,logback简单介绍见 LogBack简易教程

Logback浅析

简单的将,slf4j是一个日志的框架,有各种日志的接口,但是并不包含实际的写日志的方法。

log4j,logback则各自独立的实现了日志的写入。

1.使用log4j独立生成日志

项目中导入log4j.jar,log4j.properties或log4j.xml

package com.spike.test;

import java.io.IOException;
import java.sql.SQLException; import org.apache.log4j.Logger; public class Log4jExample {
static Logger log = Logger.getLogger(Log4jExample.class.getName()); public static void main(String[] args)throws IOException,SQLException{
log.debug("Debug");
log.info("Info");
log.error("error");
System.out.println(Log4jExample.class.getName()+" test");
}
}

输出结果如下,日志写入到log4j配置文件指定的文件中

[03 14:04:02,721 DEBUG] [main] test.Log4jExample - Debug
[03 14:04:02,723 INFO ] [main] test.Log4jExample - Info
[03 14:04:02,723 ERROR] [main] test.Log4jExample - error
com.spike.test.Log4jExample test

2.slf4j + log4j

项目中包含slf4j-api.jar,log4j.jar,slf4j-log4j.jar,以及log4j日志的配置文件

package com.spike.test;
import java.io.IOException;
import java.sql.SQLException; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; public class Slf4jExample { /* Get actual class name to be printed on */
static Logger log = LoggerFactory.getLogger(Slf4jExample.class.getName()); public static void main(String[] args)throws IOException,SQLException{
log.debug("Debug");
log.info("Info");
log.error("error");
System.out.println(Slf4jExample.class.getName()+" test");
}
}

输出结果如下,日志写入到log4j配置文件指定的文件

[03 14:07:50,548 DEBUG] [main] test.Slf4jExample - Debug
[03 14:07:50,549 INFO ] [main] test.Slf4jExample - Info
[03 14:07:50,549 ERROR] [main] test.Slf4jExample - error
com.spike.test.Slf4jExample test

3.slf4j + logback

项目中导入slf4j-api.jar,logback-access.jar,logback-classic.jar,logback-core-1.1.7.jar,以及logback.xml配置文件

package com.spike.test;

import java.io.IOException;
import java.sql.SQLException; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; public class LogbackExample { static Logger log = LoggerFactory.getLogger(Log4jExample.class.getName()); public static void main(String[] args)throws IOException,SQLException{ log.debug("Debug");
log.info("Info");
log.error("error");
System.out.println(Log4jExample.class.getName()+" test");
} }

输出结果如下,日志写入到logback.xml指定的文件中

2016-11-03 14:14:31,799 [DEBUG] [main] com.spike.test.Log4jExample [LogbackExample.java : 18] Debug
2016-11-03 14:14:31,803 [INFO] [main] com.spike.test.Log4jExample [LogbackExample.java : 19] Info
2016-11-03 14:14:31,803 [ERROR] [main] com.spike.test.Log4jExample [LogbackExample.java : 20] error
com.spike.test.Log4jExample test

参考

用slf4j+logback实现多功能日志解决方案 --- 转

LogBack入门实践

Logback 学习笔记

slf4j log4j logback关系详解和相关用法

SLF4J LOG4J-12下载地址

slf4j、jcl、jul、log4j1、log4j2、logback大总结

slf4j,log4j,logback 初步使用的更多相关文章

  1. slf4j log4j logback关系详解和相关用法

    slf4j log4j logback关系详解和相关用法 写java也有一段时间了,一直都有用slf4j log4j输出日志的习惯.但是始终都是抱着"拿来主义"的态度,复制粘贴下配 ...

  2. slf4j log4j logback log4j2关系详解和相关用法

    来源:slf4j log4j logback关系详解和相关用法https://www.cnblogs.com/Sinte-Beuve/p/5758971.html The Simple Logging ...

  3. Java日志框架(Commons-logging,SLF4j,Log4j,Logback)

    简介 在系统开发中,日志是很重要的一个环节,日志写得好对于我们开发调试,线上问题追踪等都有很大的帮助.但记日志并不是简单的输出信息,需要考虑很多问题,比如日志输出的速度,日志输出对于系统内存,CPU的 ...

  4. slf4j log4j logback相关用法

    Java的简单日志门面( Simple Logging Facade for Java SLF4J)作为一个简单的门面或抽象,用来服务于各种各样的日志框架,比如java.util.logging.lo ...

  5. slf4j -->log4j --> logback -->log4j2

    slf4j是一个接口:log4j\logback\log4j2是slf4j接口的持续更新的日志框架实现类:按照面向接口编程,java中导入slf4j最好,可以持续更新日志框架实现类. 详细情况见链接 ...

  6. slf4j log4j logback

    最先大家写日志都用log4j,后来作者勇于创新,又搞了个logback,又为了统一江湖,来了个slf4j,所以目前在代码中进行日志输出,推荐使用slf4j,这样在运行时,你可以决定到底是用log4j还 ...

  7. java日志组件介绍(common-logging,log4j,slf4j,logback )

    转自:http://www.blogjava.net/daiyongzhi/archive/2014/04/13/412364.html common-logging是apache提供的一个通用的日志 ...

  8. log4j+logback+slf4j+commons-logging的关系与调试(转)

    log4j+logback+slf4j+commons-logging的关系与调试 从Log4j迁移到LogBack的理由 http://www.tuicool.com/articles/beeeYv ...

  9. log4j+logback+slf4j+commons-logging的关系与调试

    背景     由于现在开源框架日益丰富,好多开源框架使用的日志组件不尽相同.存在着在一个项目中,不同的版本,不同的框架共存.导致日志输出异常混乱.虽然也不至于对系统造成致命伤害,但是明显可以看出,架构 ...

随机推荐

  1. mybatis实战教程(mybatis in action),mybatis入门到精通(转)

    转自:http://www.yihaomen.com/article/java/302.htm (读者注:其实这个应该叫做很基础的入门一下下,如果你看过Hibernate了那这个就非常的简单) (再加 ...

  2. 不小心改了Xcode系统的头文件,运行报错,解决办法

  3. nodejs socket

    server.js var net = require('net'); var clientList = []; var HOST = '127.0.0.1'; var PORT = 6969; va ...

  4. 《慕客网:IOS基础入门之Foundation框架初体验》学习笔记 <五> NSDicionary + NSMutableDictionary

    int main(int argc, const char * argv[]) { @autoreleasepool { //字典, 存储的内存不是连续的 用key和value进行对应(键值) //k ...

  5. Volley源码分析(2)----ImageLoader

    一:imageLoader 先来看看如何使用imageloader: public void showImg(View view){ ImageView imageView = (ImageView) ...

  6. 一步步学敏捷开发:6、Scrum的3种工件

    Scrum的3种工件包括:Product Blacklog.Sprint Backlog.完成标准. 1.产品待办事项列表(Product Backlog) 产品Blacklog是Scrum中的核心工 ...

  7. 【转载】主数据管理(MDM)与元数据管理

    主数据(Master Data)和元数据(Meta Data)是两个完全不同的概念.元数据是指表示数据的相关信息,比如数据定义等,而主数据是指实例数据,比如产品目录信息等.比如,某省地税开发了一套 征 ...

  8. java web项目自动部署到Tomcat的原因

    关于eclipse中MAVEN WEB工程中编译问题 这几天是被java的环境搞疯了,我先是搭了一个spring+springmvc+mybatis的工程,在家里跑了一下,没有问题,把工程带到公司里用 ...

  9. SQL基础概念-指令

    1,MySQL:(structured query  language)用于访问和处理数据库的标准语言      2,什么是 SQL?      SQL 指结构化查询语言      SQL 使我们有能 ...

  10. 问题解决——cout 输出 CString

    Unicode下 wcout<<strText.GetString()<<endl;