slf4j使用log4j的配置参数

2023-11-16

slf4j,即简单日志门面(Simple Logging Facade for Java),不是具体的日志解决方案,它只服务于各种各样的日志系统。按照官方的说法,SLF4J是一个用于日志系统的简单Facade,允许最终用户在部署其应用时使用其所希望的日志系统。比如用户可以自己选择使用 log4j 或是 log4j2 。

slf4j 的 maven 配置如下:

<dependency>
	<groupId>org.slf4j</groupId>
	<artifactId>slf4j-api</artifactId>
	<version>1.7.21</version>
</dependency>
<dependency>
	<groupId>org.slf4j</groupId>
	<artifactId>slf4j-log4j12</artifactId>
	<version>1.7.21</version>
</dependency>

关于具体的配置 log4j.properties :

### 设置rootLogger ###
log4j.rootLogger = info,stdout,D,E

### 输出信息到控制台 ###
### 控制台输出
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
### 默认是system.out,如果system.err是红色提示
log4j.appender.stdout.Target = System.out
### 布局格式,可以灵活指定
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
### 消息格式化
log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n

### 输出INFO 级别以上的日志到=D://logs/error.log ###
### 以每天一个文件输出日志
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
### 输出文件目录
log4j.appender.D.File = D://logs/log.log
### 消息增加到指定的文件中,false表示覆盖指定文件内容
log4j.appender.D.Append = true
### 输出信息最低级别
log4j.appender.D.Threshold = INFO
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

### 输出ERROR 级别以上的日志到=D://logs/error.log ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File =D://logs/error.log
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

日志级别

主要有以下:

  • ERROR 错误
  • WARN 警告
  • INFO 一般信息
  • DEBUG 调试信息

常用的输出位置

  • ConsoleAppender 控制台
  • FileAppender 文件
  • DailyRollingFileAppender 每天产生一个日志文件
  • RollingFileAppender 文件大小达到指定尺寸时产生一个新文件
  • WriterAppeder 将日志信息以流格式发送到指定地方

格式化输出

-X号: X信息输出时左对齐;
%p: 输出日志信息优先级,即DEBUG,INFO,WARN,ERROR,FATAL,
%d: 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921
%r: 输出自应用启动到输出该log信息耗费的毫秒数
%c: 输出日志信息所属的类目,通常就是所在类的全名
%t: 输出产生该日志事件的线程名
%l: 输出日志事件的发生位置,相当于%C.%M(%F:%L)的组合,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main (TestLog4.java:10)
%x: 输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像Java servlets这样的多客户多线程的应用中。
%%: 输出一个”%”字符
%F: 输出日志消息产生时所在的文件名称
%L: 输出代码中的行号
%m: 输出代码中指定的消息,产生的日志具体信息

有时我们看到 %-5p 或者 %5p 意思就是输出日志级别时,左对齐或右对齐,4个字母的 INFO / WARN 要补一个空格,才能和 DEBUG / ERROR 对齐格式。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

slf4j使用log4j的配置参数 的相关文章

随机推荐

  • shardingsphere-jdbc配置常见问题,Type is required

    Type is requied 错误 shardingsphere不能写成sharing sphere 将datasource写成了database names写成name driver class name不能写成driverClassN
  • keil5中找不到本应该有的芯片

    问题描述 从网上下载了一份他人的keil工程 发现打开后无法找到对应芯片 确定已下载该芯片的器件包 如图1所示 打开工程设置后仍无法找到芯片 但新建工程时有 如图2所示 图1 打开工程时显示 图2 打开工程设置界面 解决方法 新建一个所需芯
  • 十万火急的数据采集项目,爬虫代理测试对比

    十万火急的数据采集项目 爬虫代理测试对比 开春上班第一天 正在喝咖啡发神 老大开会宣布公司要重点投入数据爬取和分析业务 为客户做业务做数据支撑要求达到日均1000W级别的数据采集量 让我做一下技术规划 赶紧找出了一年前爬虫框架跑了一下电商数
  • 互联网公司常见面试算法题

    1 假设淘宝一天有5亿条成交数据 求出销量最高的100个商品并给出算法的时间复杂度 先用哈希 统计每个商品的成交次数 然后再用在N个数中找出前K大个数的方法找出成交次数最多的前100个商品 优化方法 可以把5亿个数据分组存放 比如放在500
  • java 直接读取zip文件和文件内容

    不解压zip文件 直接读取zip包内的文件夹以及文件内容 zip包内内容 代码如下 import java io import java nio charset Charset import java util zip ZipEntry i
  • 我总结了大龄程序员未来最好得3个出路

    所谓出路 就是继续下去的方法 30岁的程序员通常要同时面临技术瓶颈 家庭负担以及贷款压力 如果这个时候没有能够坐到一个理想的位置 或者是积累一些资源与人脉 那么其实压力是很大的 那么这个时候还有出路吗 当然有 其实30岁还属于青年 离中年还
  • 微信小程序,图像识别源码

    目录 前言 百度端配置信息 小程序中代码 结语 智能识图小程序源码下载路径 https pan baidu com s 1OGE7vhogS7L7nn0JIFPVWw 提取码 8ze9 前言 基于近期的工作内容关系 在查询一些资料的同时 在
  • hadoop环境搭建之制作本地yum源

    因为需要的三个安装包都在国外服务器 切最大的超过5G 如果不是对网络特别有自信 最好确认完整下载后制作本地yum源安装 推荐 一 安装 Apache HTTP 服务器 直接yum安装即可 yum install httpd 因为前面已经关闭
  • 华为OD,阿里巴巴找黄金宝箱(Ⅱ)(Java实现)

    Java代码 public class Demo2 public static void main String args Scanner scanner new Scanner System in Map
  • 【粉丝问答19】为啥变量没初始化就用了?那是宏定义啊!

    目录 一 问题 二 分析 三 宏定义的注意点 1 只占用编译时间 2 宏替换发生时机 3 预处理包括哪些工作 四 如何快速展开复杂的宏定义 第一步 第二步 五 练习 六 15个经典宏定义小例子 一 问题 为啥内核有的变量没有初始化就敢直接使
  • node.js的学习

    nodejs 官网 Node js nodejs org nodejs中代码由V8引擎解析 内置fs http等api 不包含dom和bom 不可以在nodejs中使用bom和dom nodejs可以做什么 基于Express框架 可以快速
  • 逻辑运算符、位运算符、移位运算符、三目运算符、运算符的优先级

    一 逻辑运算符 逻辑运算符的作用是用于连接布尔表达式的 1 与 并且 规律 只有左右变量同时为true 那么结果才是true 否则就false 2 或 或者 规律 只要两边的布尔表达式有一边为true 那么结果就为true 只有两边同时为f
  • npm安装依赖报错: cb() never called!

    用npm安装依赖报错 npm ERR cb never called npm ERR This is an error with npm itself Please report this error at npm ERR
  • Ubuntu14.04下安装QT 5.6.3

    1 选择qt版本 镜像网址选择版本为5 6 3 http mirror bit edu cn qtproject official releases qt 2 进入到安装包所在的目录 如果安装包无法直接运行的话则执行以下命令 chmod x
  • 异步任务-springboot

    异步 异步与同步相对 当一个异步过程调用发出后 调用者在没有得到结果之前 就可以继续执行后续操作 也就是说无论异步方法执行代码需要多长时间 跟主线程没有任何影响 主线程可以继续向下执行 实例 在service中写一个hello方法 让它延迟
  • 安全转移C盘空间,比如 更改Unity中默认下载在C盘的Package的保存地址

    不同于 快捷方式 快捷方式本质是文件 后缀是link 记载路径信息 符号链接本质是引用 程序访问可直达目标路径 操作 首先在把C盘中的文件路径复制下来 粘贴到Link处 然后把C盘中的文件剪切到其他盘中 复制其他盘中该文件的路径 粘贴到Ta
  • VSCode 入门操作大全 + 实用插件推荐【零基础专属详细教程】

    前言 选择一个好的开发工具很重要 很多刚学编程的小伙伴在 webstorm 和 vscode 上很难抉择 我个人更喜欢使用 vscode 因为其有着简洁的操作风格和丰富的人性化的各种功能 这篇文章带给大家 vscode 的新手操作指南 大家
  • 论文笔记 Bayesian Probabilistic Matrix Factorizationusing Markov Chain Monte Carlo (ICML 2008)

    0 摘要 低秩矩阵逼近方法是协同过滤中最简单 最有效的方法之一 这类模型通常通过寻找模型参数的MAP估计来拟合数据 这一过程即使在非常大的数据集上也能有效地执行 然而 除非正则化参数被仔细地调整 否则这种方法很容易过度拟合 因为它找到了参数
  • 【满分】【华为OD机试真题2023 JS】投篮大赛

    华为OD机试真题 2023年度机试题库全覆盖 刷题指南点这里 投篮大赛 知识点字符串 时间限制 1s 空间限制 256MB 限定语言 不限 题目描述 你现在是一场采用特殊赛制投篮大赛的记录员 这场比赛由若干回合组成 过去几回合的得分可能会影
  • slf4j使用log4j的配置参数

    slf4j 即简单日志门面 Simple Logging Facade for Java 不是具体的日志解决方案 它只服务于各种各样的日志系统 按照官方的说法 SLF4J是一个用于日志系统的简单Facade 允许最终用户在部署其应用时使用其