slf4j-api-1.7.5日志打印实验
下面一段话来自:百度百科
假设你开发的是类库或者嵌入式组件,那么就应该考虑採用SLF4J,由于不可能影响终于用户选择哪种日志系统。在还有一方面,假设是一个简单或者独立的应用,确定仅仅有一种日志系统,那么就没有使用SLF4J的必要。假设你打算将你使用log4j的产品卖给要求使用JDK 1.4 Logging的用户时,面对成千上万的log4j调用的改动,相信这绝对不是一件轻松的事情。可是假设開始便使用SLF4J,那么这样的转换将是很轻松的事情。
今天来測试一下slf4j的使用和它的魅力。
一般如今java项目都是web项目,所以我们的试验项目就採用web项目測试。
1.新建web项目slf4jdemo
2.引用jar包
这里须要注意的就是slf4j相应的log4j的版本号,的那个人你也能够选择其它的日志系统。
log4j-1.2.12.jar
servlet2.5-jsp2.1-api.jar
slf4j-api-1.7.5.jar
slf4j-log4j12-1.7.5.jar
3.加入Log4j的配置文件Log4j.properties
这里须要说明一下,Log4j本身的默认路径是/WEB-INF/classes/文件夹下的,所以千万别放错位置了。
#log4j logger FATAL=0 ERROR=3 WARN=4 INFO=6 DEBUG=7
#log4j.rootLogger = DEBUG, a1
log4j.rootLogger = OFF
### direct log messages to 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{ABSOLUTE} %5p %c{1}:%L - %m%n
log4j.logger.org =ERROR, a1
log4j.logger.net = ERROR, a1 log4j.logger.com.qisentech = DEBUG, a1 log4j.appender.a1 = org.apache.log4j.RollingFileAppender
log4j.appender.a1.File = ${rootPath}/webplus.log
log4j.appender.a1.MaxFileSize = 10000KB
log4j.appender.a1.MaxBackupIndex = 10
log4j.appender.a1.layout = org.apache.log4j.PatternLayout
log4j.appender.a1.layout.ConversionPattern = %d [%t](%F:%L)%c %-5p - %m%n #log4j.rootLogger=WARN, stdout
#log4j.appender.stdout=org.apache.log4j.ConsoleAppender
#log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
#log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
细心一点看配置信息,能够看到一个${rootPath},选择我们就要初始化这个变量。
4.新建初始化Servlet
/*
* 文 件 名 : com.qisentech.slf4j.demo.WebplusContextStart.java
* 创建日期 : 2013-8-23 11:20:48
* 创 建 者 : qsyang
*/
package com.qisentech.slf4j.demo; import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet; /**
* <p>Title: </p>
*
* <p>Description: </p>
*
* @author qsyang
* @version 1.0
*/
public class WebplusContextStart extends HttpServlet { @Override
public void init() throws ServletException {
System.setProperty("log4j.configuration", "Log4j.properties");
String contextPath = this.getServletContext().getRealPath("/");
System.setProperty("rootPath", contextPath);
}
}
我们设置了Log4j的默认參数log4j.configuration和我们配置文件变量rootPath。
5.在类中使用slf4j打印日志
引用方式:
Logger _log = LoggerFactory.getLogger(Slf4jTest.class);
注意,这里的对象引用是:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
再看下打印方式:
_log.debug(“调试日志:XXXXX”);
附上所有源代码:
/*
* 文 件 名 : com.qisentech.slf4j.demo.Slf4jTest.java
* 创建日期 : 2013-8-23 11:02:20
* 创 建 者 : qsyang
*/
package com.qisentech.slf4j.demo; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; /**
* <p>Title: </p>
*
* <p>Description: </p>
*
* @author qsyang
* @version 1.0
*/
public class Slf4jTest { private static Logger _log = LoggerFactory.getLogger(Slf4jTest.class); public static void testDebug(String info) {
System.out.println("testDebug");
_log.debug(info);
} public static void testInfo(String info) {
System.out.println("testInfo");
_log.info(info);
} public static void testWarn(String info) {
System.out.println("testWarn");
_log.warn(info);
} public static void testError(String info) {
System.out.println("testError");
_log.error(info);
}
}
5.不要忘了配置web.xml
<!-- Webplus 环境初始化(必须启动) -->
<servlet>
<servlet-name>WebplusContextStart</servlet-name>
<servlet-class>com.qisentech.slf4j.demo.WebplusContextStart</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
这样整个就成功了。
以下将源代码下载地址附上,有兴趣能够去下载。
slf4j-api-1.7.5日志打印实验的更多相关文章
- SLF4J - 一个允许你统一日志记录API的抽象层
一.什么是SLF4J 我们在做Java开发时,如果需要记录日志,有很多日志API可供选择,如: java.util.logging Apache log4j logback SLF4J又是个什么东东呢 ...
- python 以单例模式封装logging相关api实现日志打印类
python 以单例模式封装logging相关api实现日志打印类 by:授客QQ:1033553122 测试环境: Python版本:Python 2.7 实现功能: 支持自由配置,如下lo ...
- SpringBoot 整合 slf4j 日志打印
划水时间,记录一下用到的相关slf4j 日志打印,如何实现配置输出.本地保存log日志文件... 我使用的是SpringBoot框架,slf4j 类库已经包含到了 SpringBoot 框架中,所有, ...
- SpringBoot+logback实现日志打印
logback介绍 logback是一款开源的日志框架,内核重写了,是基于log4j基础进行改良的.其官网为logback.qos.ch.logback在性能上有很大提升,拥有更多特性. logbac ...
- slf4j+logback搭建超实用的日志管理模块
文章转自http://www.2cto.com/kf/201702/536097.html slf4j+logback搭建超实用的日志管理模块(对日志有编号管理):日志功能在服务器端再常见不过了,我们 ...
- SpringBoot2.0 基础案例(02):配置Log4j2,实现不同环境日志打印
一.Log4j2日志简介 日志打印是了解Web项目运行的最直接方式,所以在项目开发中是需要首先搭建好的环境. 1.Log4j2特点 1)核心特点 相比与其他的日志系统,log4j2丢数据这种情况少:d ...
- SpringBoot系列之集成logback实现日志打印(篇二)
SpringBoot系列之集成logback实现日志打印(篇二) 基于上篇博客SpringBoot系列之集成logback实现日志打印(篇一)之后,再写一篇博客进行补充 logback是一款开源的日志 ...
- 二:SpringBoot-配置Log4j2,实现不同环境日志打印
SpringBoot-配置Log4j2,实现不同环境日志打印 日志打印之外观模式 1.日志配置 2.Log4j2的配置文件 3.简单的测试程序 日志打印之外观模式 每一种日志框架都有自己单独的API, ...
- Java编码常见的Log日志打印问题
前言 本文总结了作者在Java代码检视中遇到的一些关于日志打印的问题,并给出修改建议.因能力有限,难免存在错漏,欢迎指正. 一. 不规范的异常打印 使用slf4j日志组件时,logger.error( ...
随机推荐
- 省市区(县)三级联动代码(js 数据源)
ylbtech-JavaScript-Utility:省市区(县)三级联动代码(js 数据源) 省市区(县)三级联动代码(js 数据源) 1.A,源代码(Source Code)返回顶部 1.A.1, ...
- Dubbo入门实例--转载
原文地址:http://blog.csdn.net/ruishenh/article/details/23180707?utm_source=tuicool 1. 概述 Dubbo是一个分布式服务 ...
- Alibaba
题意: 有n个东西在一条路上,已知他们的位置,和能获得他们的最后期限,求能获得n个东西的最小总时间. 分析: 想到了求”未来费用问题", dp[i][j][k]表示获得区间长i起点为j的所有 ...
- 使用Qmake在树莓派上开发Opencv程序
Qt 安装 PC 端 下载安装即可 https://mirrors.ustc.edu.cn/qtproject/official_releases/qt 树莓派:Qt开发套件和opencv安装sud ...
- bzoj1150
haha,贪心,边界条件折腾了我一会儿 #include<cstdio> #include<cctype> #include<queue> #include< ...
- ORA-15124 数据库启动阶段报错
重新进行启动数据库的时候报错: SQL> startup nomount; ORA-15124: ASM file name '+KEL/ipap/controlfile/control02.c ...
- LeetCode题解——Container With Most Water
题目: x轴上有一些点,每个点上有一条与x轴垂直的线(线的下端就是这个点,不超出x轴),给出每条线的高度,求这些线与x轴组成的最大面积. 解法: 贪心策略,维持两个指针,分别指向第一个和最后一个元素, ...
- bzoj 2095: [Poi2010]Bridges(二分法+混合图的欧拉回路)
[题意] 给定n点m边的无向图,对于边u,v,从u到v边权为c,从v到u的边权为d,问能够经过每条边一次且仅一次,且最大权值最小的欧拉回路. [思路] 二分答案mid,然后切断权值大于mid的边,原图 ...
- ACM1994
/* Problem Description 为自行解决学费,chx勤工俭学收入10000元以1年定期存入银行,年利率为3.7% .利率按年计算,表示100元存1年的利息为3.7元.实际上有时提前有时 ...
- Ubuntu_wifi&pppoe
学校现在上网全部要拨号,加上我在宿舍用的是无线路由,也就是要在ubuntu下实现连接wifi后再拨号,这个功能在默认的ubuntu网络设置里面是没有的,里面有dsl但是对有线网络使用的,有点小郁闷.不 ...