slf4j 和 log4基础入门(Maven配置)
2019独角兽企业重金招聘Python工程师标准>>>
我们将从四个问题出发。
第一,log4j是什么?
log4j是一个日志系统,是Apache的一个开放源代码项目。当然Java日志系统比较丰富,其他常用的日志系统还有java.util.logging、JUL、logback等等。
第二,slf4j又是什么?
slf4j(Simple logging facade for Java),即简单日志门面。它不同于上面所说的各种日志系统,不是真正的日志实现,不是具体的日志解决方案。而是一个抽象层,它允许你在后台使用任意一个日志系统(例如log4j)。即slf4j是一个具体日志系统的封装,对外提供统一的API,但其本身并不提供日志实现。
第三,既然已经有各种日志系统了,为什么还要使用slf4j?
问题就是现在有了各种日志系统,因此每个类库使用的日志系统都可能不一样。但lf4j允许你在后台使用任意一个日志系统(例如log4j),即使得你的程序独立于任意特定的日志系统。例如,你的一个项目已经使用了log4j,而你加载了一个类库,比方说 Apache Active MQ——它依赖于另外一个日志类库logback,那么你就需要把它也加载进去。但如果Apache Active MQ使用了slf4j,你就可以继续使用你的日志系统而无需加载和维护一个新的日志框架。
第四,果真如此好用,那怎么使用?
首先,准备相应的包。
1.slf4j-api-x.x.x.jar 它提供对外一致的API接口,其本身不提供日志实现。
2.这里选择log4j作为我们的日志实现,则需要下载 log4j-x.x.x.jar。
3.如果想把slf4j绑定log4j,则需要下载slf4j对log4j的相应”驱动” slf4j-log4j12-x.x.x.jar。
这样就可以使用slf4j提供的API,用log4j实现打印日志了。具体在Maven porn.xml 文件中添加的dependency如下:
<dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>1.6.6</version> </dependency>
然后,添加配置文件。log4j支持两种配置文件格式,一种是XML格式的文件,一种是properties格式的文件。我们这里采用properties格式的方法。
在项目中添加log4j.properties文件,如下图:
具体配置如下:
# config root logger # [level] 是日志输出级别 log4j.rootLogger = INFO,system.out # Appender 为日志输出目的地 log4j.appender.system.out=org.apache.log4j.ConsoleAppender log4j.appender.system.out.layout=org.apache.log4j.PatternLayout log4j.appender.system.out.layout.ConversionPattern=Server Logger --> %5p{%F:%L} = %m%n# config this Project.file logger log4j.logger.thisProject.file=INFO,thisProject.file.out # 每天产生一个日志文件 log4j.appender.thisProject.file.out=org.apache.log4j.DailyRollingFileAppender log4j.appender.thisProject.file.out.File=logContentFile.log log4j.appender.thisProject.file.out.layout=org.apache.log4j.PatternLayout
最后,在代码中使用日志系统。示例代码如下:
import org.apache.log4j.PropertyConfigurator; import org.slf4j.Logger; import org.slf4j.LoggerFactory;public class App {// 通过指定的名字获得日志对象public static final Logger log = LoggerFactory.getLogger(App.class);public static void main(String[] args) {// 通过资源类对log4j.properties文件进行加载PropertyConfigurator.configure("D:\\Workspace\\man\\src\\log4j.properties");log.info("Hello,World!");} }
使用效果:
至此成功打印输出了日志。
通过此篇文章,我们简单了解slf4j和log4j的背景。在此基础通过一个简单的例子,实现了slf4j和log4j的配置使用。其中省略了很多细节,待下次深入研究后再另起一篇博文详细介绍吧。
转载于:https://my.oschina.net/greatqing/blog/710836
slf4j 和 log4基础入门(Maven配置)相关推荐
- java自动化测试框架基础eclipse+maven配置
java自动化测试框架基础eclipse+maven配置 文章目录 java自动化测试框架基础eclipse+maven配置 一.maven安装配置 二.eclipse中使用maven 一.maven ...
- Maven - 基础入门与安装配置
Maven - 基础入门与安装配置 [1]Maven基础入门 Maven的核心程序中仅仅定义了抽象的生命周期,但是具体的工作必须由特定的插件来完成.而插件本身并不包含在Maven的核心程序中. 当我们 ...
- Android Studio新手–下载安装配置–零基础入门–基本使用–调试技能–构建项目基础–使用AS应对常规应用开发
转自:http://blog.csdn.net/yanbober/article/details/45306483 目标:Android Studio新手–>下载安装配置–>零基础入门–& ...
- slf4j 和 log4j的关系及合用Maven配置
最近因为项目实在是太忙,都没有时间学习.有时候会很矛盾,一方面是全心全意的想去快速做完项目,一方面又想学习点新东西.这样导致这两三个月都没有去学习一些新的东西,这周我开始创建自己的maven项目,因为 ...
- Maven+SpringMVC+Dubbo+zookeeper 简单的入门demo配置
参考:http://blog.csdn.net/aixiaoyang168/article/details/51362675 dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调 ...
- Python 基础入门--简介和环境配置
2019 年第 32 篇,总 56 篇文章 本文大约 1w 字,建议收藏阅读 上周结束了如何构造一个机器学习项目的系列文章,当然还有一篇简单的总结以及介绍一些入门的学习资料,不过还在整理,应该这周内会 ...
- python安装方法_Python基础入门——简介和环境配置,超实用!
作者 | kbsc13 来源 | 机器学习与计算机视觉(ID:AI_Developer) 上周结束了如何构造一个机器学习项目的系列文章,当然还有一篇简单的总结以及介绍一些入门的学习资料,不过还在整理, ...
- apache camel 相关配置_Web基础配置篇(二): Maven配置及使用
Web基础配置篇(二): Maven配置及使用 一.概述 Maven是一个软件开发管理工具,主要管理工作是:依赖管理,项目一键构建. 以前用过ant,很不方便,maven比较简单易用. 然后后面又来了 ...
- CUE语言基础入门:CUE是一门为配置而生的语言
基础入门 从这一部分开始,我们会介绍 KubeVela 是如何基于 CUE 来实现抽象和扩展的.本节将主要介绍一些 CUE 的基础知识,如果你对 KubeVela 的核心概念还不了解也没有关系,对于那 ...
最新文章
- SharePoint 2010 产品六大功能模块
- 如何保证电子邮件的安全
- mysql记录相互关系查询_MySQL关系表查询两个表的数据
- java 获取手机归属地_java 获取手机归属地
- ArcGIS,Envi软件中的卷帘工具使用及对比
- 【HNOI2019】白兔之舞【组合数学】【矩阵快速幂】【单位根反演】【Chirp Z-Transform】【原根】【MTT】
- java把对象转成图片格式转换器安卓版,java 万能图片格式转换
- 交叉验证选择最佳参数_如何为您的公司选择最佳的身份验证即服务提供商
- 横向导出excel_万能转换:R图和统计表转成发表级的Word、PPT、Excel、HTML、Latex、矢量图等...
- 验证手机号码的JS方法
- DimDate populate data
- Java的继承 以学生管理系统为例
- 重新认识下科技核心目录吧!附容易发的期刊名单
- 集成电路工艺专题复习
- Python清理微信僵尸粉
- 计算机学院静态网页毕业论文,静态网页毕业论文静态网页毕业论文.doc
- 模拟人生3显示服务器,模拟人生3服务器初始化失败
- ttl传输中过期可能是什么原因_ttl传输中过期怎么解决
- 全新整理:微软、谷歌、百度等公司经典面试100题[第1-60题]
- (LeetCode C++)跳跃游戏