slf4j的使用
1.导入jar包
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.2</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.5</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
2.生成配置文件 src\main\resources\log4j.propertes
log4j.rootLogger=info,ROLLING_FILE
log4j.appender.ROLLING_FILE = org.apache.log4j.ConsoleAppender
log4j.appender.ROLLING_FILE.encoding=utf-8 (* utf-8后面不能有空格,utf为小写)
log4j.appender.ROLLING_FILE.File = stock.log
log4j.appender.ROLLING_FILE.Append = true
log4j.appender.ROLLING_FILE.MaxFileSize= 20MB
log4j.appender.ROLLING_FILE.MaxBackupIndex= 2
log4j.appender.ROLLING_FILE.layout = org.apache.log4j.PatternLayout
log4j.appender.ROLLING_FILE.layout.ConversionPattern=[log] %d - %c - %-4r [%t] %-5p %c %x - %m%n
补充:文件格式为utf-8 (idea右下角显示)
File ->settings... -> File Encoding ->IDE Encoding (UTF-8) Project Encoding (UTF-8)
File -> other settings -> default Encoding -> File Encoding ->IDE Encoding (UTF-8) Project Encoding (UTF-8)
3.在类中使用
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
private Logger logger = LoggerFactory.getLogger(xxx.class);
logger.info("write log message")
logger.info(e.getMessage()); -------------------------------------
配置文件说明:
log4j.rootLogger=info,ROLLING_FILE
# 打印等级 Info ,指定名称ROLLING_FILE
log4j.appender.ROLLING_FILE = org.apache.log4j.ConsoleAppender
# 输出到控制台
log4j.appender.ROLLING_FILE.encoding=utf-8
# 编码格式为utf-8
log4j.appender.ROLLING_FILE.File = stock.log
# 指定文件打印位置
log4j.appender.ROLLING_FILE.Append = true
#true表示消息增加到指定文件中,false则将消息覆盖指定的文件内容,默认值是true
log4j.appender.ROLLING_FILE.MaxFileSize= 20MB
# 文件最大到20MB滚动一次
log4j.appender.ROLLING_FILE.MaxBackupIndex= 2
# 文件最多可滚动3次
log4j.appender.ROLLING_FILE.layout = org.apache.log4j.PatternLayout
# 可以灵活地指定布局模式
log4j.appender.ROLLING_FILE.layout.ConversionPattern=[log] %d - %c - %-4r [%t] %-5p %c %x - %m%n # %d: 输出日志时间点的日期或时间,默认格式为ISO8601
# %c: 输出日志信息所属的类目,通常就是所在类的全名
# %r: 输出自应用启动到输出该log信息耗费的毫秒数
# %t: 输出产生该日志事件的线程名
# %p: 输出日志信息优先级,即DEBUG,INFO,WARN,ERROR,FATAL,
# %x: 输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中。
# %m: 输出代码中指定的消息,产生的日志具体信息
# %n 输出一个回车换行符,Windows平台为"/r/n",Unix平台为"/n"输出日志信息换行 # %F: 输出日志消息产生时所在的文件名称
# %L: 输出代码中的行号 -----------------------------------------------------------------
首行:等级可分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL,如果配置OFF则不打出任何信息,如果配置为INFO这样只显示INFO, WARN, ERROR的log信息,而DEBUG信息不会被显示。
1. 定义名为stdout的输出端是哪种类型,
org.apache.log4j.ConsoleAppender(控制台),
org.apache.log4j.FileAppender(文件),
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
2. 定义名为stdout的输出端的layout是哪种类型,
org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
slf4j的使用的更多相关文章
- slf4j中的MDC
slf4j中MDC是什么鬼 slf4j除了trace.debug.info.warn.error这几个日志接口外,还可以配合MDC将数据写入日志.换句话说MDC也是用来记录日志的,但它的使用方式与使用 ...
- slf4j
Simple Logging Facade for Java (SLF4J) slf4j可以看成是对各个日志框架的一种抽象,它提供了一套通用的日志使用接口. 下面是slf4j的几个版本比较: 1.6. ...
- Atitit.日志系统slf4j的使用
Atitit.日志系统slf4j的使用 SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar ...
- 用户代理字符串识别工具源码与slf4j日志使用
User Agent中文名为用户代理,简称 UA,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本.CPU 类型.浏览器及版本.浏览器渲染引擎.浏览器语言.浏览器插件等.UA也成为了, ...
- java日志组件介绍(common-logging,log4j,slf4j,logback )
转自:http://www.blogjava.net/daiyongzhi/archive/2014/04/13/412364.html common-logging是apache提供的一个通用的日志 ...
- java.lang.NoClassDefFoundError: Lorg/slf4j/Logger;
如果你出现类似如下错误 1. Install tomcat7 in my home directory and set up `CATALINA_HOME` environment variable ...
- SLF4J: Class path contains multiple SLF4J bindings.
库冲突导致的异常,由于多次引入SLF4j包导致. It seems you have several implementation of SLF4J; you should exclude all t ...
- 使用Slf4j集成Log4j2构建项目日志系统的完美解决方案
一.背景 最近因为公司项目性能需要,我们考虑把以前基于的log4j的日志系统重构成基于Slf4j和log4j2的日志系统,因为,使用slf4j可以很好的保证我们的日志系统具有良好的兼容性,兼容当前常见 ...
- Spring 使用 SLF4J代替 Commons Logging 写日志 异常
项目的日志更换成slf4j和logback后,发现项目无法启动.错误提示 Caused by: java.lang.NoClassDefFoundError: Lorg/apache/commons/ ...
- slf4j的简单介绍
SLF4J,Simple Logging Facade for JAVA,是一个十分简单的的日志facade,对于不同的日志框架做了一个封装. 对比common logging,Common logg ...
随机推荐
- git 仓库原理
Git 版本控制原理 标签: git 版本控制 版本回退 2017年01月13日 21:07:202399人阅读 评论(0) 收藏 举报 分类: Git(4) 版权声明:本文为博主原创文章,未经博 ...
- java课堂笔记
- 【Beta】Scrum Meeting 1
前言 会议定点:新主楼F座教室 会议时间:2019/4/26 会议目的:确定Beta版本的功能和设计文档 一.任务进度 组员 下阶段任务 大娃 后端模型正确性说明文档 二娃 记录会议内容,撰写博客 三 ...
- leetcode python 033 旋转数组查找
## 假设升序,import random def find(y): l,m=len(y),0 while l>1: n=int(l/2) if y[0] ...
- python 全栈开发笔记 3
正则表达式 正则表达式(RE)是一种小型的,高度专业化的,它镶嵌在python中,并通过re模块实现,正则表达式编译成一系列的字节码,然后由用c编写的匹配引擎执行. #正则表达式 import re ...
- js 发送http请求
// 1.创建 XHR对象(IE6- 为ActiveX对象) // 2.连接及发送请求 // 3.回调处理 function createXMLHttpRequest() { var xhr; ...
- node.js学习6---第三方依赖(模块或者说是包)的导入 npm 以及 cnpm命令的使用
npm命令用于导入node.js的第三方包,相当于java中使用maven来导入第三方依赖: 1.npm init -y 命令:在命令窗口中执行后,会出现如下的json文件: 右边记录了安装的第三方包 ...
- 为什么使用zookeeper?
随着应用规模的迅速扩张,单台机器的部署已经难以支撑用户大规模.高并发的请求了, 因此服务化.集群化.分布式概念应运而生. 针对这种场景,人们通常使用的做法就是将软件按照模块进行拆分,形成独立的子系统, ...
- C#中五种访问修饰符作用范围 public、private、protected、internal、protected internal
1.五种访问修饰符包括哪些? public.private.protected.internal.protected internal 2.五种访问修饰符的作用范围? public :公有访问.不受 ...
- python2入门(3)
六.python列表(List) python最常见的序列类型python列表List使用[]表示,元素之间以逗号分隔,元素类型不需要相同 内置操作: list = [1,2,3,'four'] li ...