slf4j,log4j,logback 初步使用
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实现多功能日志解决方案 --- 转
slf4j、jcl、jul、log4j1、log4j2、logback大总结
slf4j,log4j,logback 初步使用的更多相关文章
- slf4j log4j logback关系详解和相关用法
slf4j log4j logback关系详解和相关用法 写java也有一段时间了,一直都有用slf4j log4j输出日志的习惯.但是始终都是抱着"拿来主义"的态度,复制粘贴下配 ...
- slf4j log4j logback log4j2关系详解和相关用法
来源:slf4j log4j logback关系详解和相关用法https://www.cnblogs.com/Sinte-Beuve/p/5758971.html The Simple Logging ...
- Java日志框架(Commons-logging,SLF4j,Log4j,Logback)
简介 在系统开发中,日志是很重要的一个环节,日志写得好对于我们开发调试,线上问题追踪等都有很大的帮助.但记日志并不是简单的输出信息,需要考虑很多问题,比如日志输出的速度,日志输出对于系统内存,CPU的 ...
- slf4j log4j logback相关用法
Java的简单日志门面( Simple Logging Facade for Java SLF4J)作为一个简单的门面或抽象,用来服务于各种各样的日志框架,比如java.util.logging.lo ...
- slf4j -->log4j --> logback -->log4j2
slf4j是一个接口:log4j\logback\log4j2是slf4j接口的持续更新的日志框架实现类:按照面向接口编程,java中导入slf4j最好,可以持续更新日志框架实现类. 详细情况见链接 ...
- slf4j log4j logback
最先大家写日志都用log4j,后来作者勇于创新,又搞了个logback,又为了统一江湖,来了个slf4j,所以目前在代码中进行日志输出,推荐使用slf4j,这样在运行时,你可以决定到底是用log4j还 ...
- java日志组件介绍(common-logging,log4j,slf4j,logback )
转自:http://www.blogjava.net/daiyongzhi/archive/2014/04/13/412364.html common-logging是apache提供的一个通用的日志 ...
- log4j+logback+slf4j+commons-logging的关系与调试(转)
log4j+logback+slf4j+commons-logging的关系与调试 从Log4j迁移到LogBack的理由 http://www.tuicool.com/articles/beeeYv ...
- log4j+logback+slf4j+commons-logging的关系与调试
背景 由于现在开源框架日益丰富,好多开源框架使用的日志组件不尽相同.存在着在一个项目中,不同的版本,不同的框架共存.导致日志输出异常混乱.虽然也不至于对系统造成致命伤害,但是明显可以看出,架构 ...
随机推荐
- iOS设计模式之单例模式
单例模式 基础理解 所有类都有构造方法,不编码则系统默认生成空的构造方法,若有显示定义的构造方法,默认的构造方法就会失效. 单例模式(Singleton):保证一个类仅有一个实例,并提供一个访问它的全 ...
- swift2.2当中的inout参数的使用
在Swift中,初次接触inout关键字以及它的用法,可能会让我们想起C/C++中的指针,但实际上Swift中inout只不过是按值传递,然后再写回原变量,而不是按引用传递: An in-out pa ...
- iOS中的单例模式
概念相关 单例模式 在程序运行过程,一个类只有一个实例 使用场合 在整个应用程序中,共享一份资源(这份资源只需要创建初始化1次) static static关键字会在声明变量的时候分配内存,在程序运行 ...
- 数据库测试DbUnit
DBUnit 的设计理念就是在测试之前,备份数据库,然后给对象数据库植入我们需要的准备数据,最后,在测试完毕后,读入备份数据库,回溯到测试前的状态: 摘自:DbUnit入门实战 DBUnit官网:ht ...
- Linux网络编程&内核学习
c语言: 基础篇 1.<写给大家看的C语言书(第2版)> 原书名: Absolute Beginner's Guide to C (2nd Edition) 原出版社: Sams 作者: ...
- 有用的.NET库
1. Polly,重试 Polly is a .NET 3.5 / 4.0 / 4.5 / PCL library that allows developers to express transien ...
- (ios)ARC常用设置,部分文件编译设置ARC
1设置 整个项目是否支持ARC 选择No 不支持 YES 支持 2 设置部分文件是否支持ARC. 支持ARC的Flags -fobjc-arc 不支持的Flags -fno-objc-arc
- Force.com平台基础--前言
云计算平台 云计算模式有三种:(下面介绍来自百科) 1. SaaS:提供给客户的服务是运营商运行在云计算基础设施上的应用程序,用户可以在各种设备上通过客户端界面访问,如浏览器.消费者不需要管理或控制任 ...
- SQL基础(1)-创建及修改表
1. 建表语句 CREATE TABLE fdh_client_info ( id varchar2(50) primary key, name varchar2(30) not null, sex ...
- C标准头文件<assert.h>
<assert.h>定义了两个用来调试程序的宏: assert和NDEBUG,assert用来判断表达式是否为真,如果为真继续执行,如果为假,向stderr输出一条错误消息,并调用< ...