现在比较吊的就是这个log4j2这个日志框架了,功能强悍.slf4j是个日志框架的统一接口,方便扩展,切换框架啥的.

配置SSM+log4J2+SL4J

https://blog.csdn.net/chy2z/article/details/80080580

一般常用的使用方式
public class JavaTest {
private final static Logger logger = LoggerFactory.getLogger(JavaTest.class);
public static void main(String[] args) {
logger.error("a{}b{}c",1,"2");
}
}

有关日志配置文件三篇比较强悍的博客

https://blog.csdn.net/yangshangwei/article/details/75146896
https://www.cnblogs.com/hafiz/p/6170702.html
https://www.cnblogs.com/SummerinShire/p/6498977.html

正八经儿吊的还是去这看 https://logging.apache.org/log4j/2.x/

项目中一个大神老哥写的

<?xml version="1.0" encoding="UTF-8"?>
<Configuration monitorInterval="60">
<Appenders>
<Console name="stdout" target="SYSTEM_OUT">
<PatternLayout
pattern="%date{DEFAULT} |%-20.20thread |%-30.30logger{1}|%level{length=1}| %message%n" />
</Console>
<RollingFile name="ofbiz" fileName="runtime/logs/ofbiz.log"
filePattern="runtime/logs/ofbiz-%d{yyyy-MM-dd}-%i.log">
<PatternLayout
pattern="%date{DEFAULT} |%-20.20thread |%-30.30logger{1}|%level{length=1}| %message%n" />
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="1 MB" />
</Policies>
<DefaultRolloverStrategy max="10" />
</RollingFile>
<RollingFile name="error" fileName="runtime/logs/error.log"
filePattern="runtime/logs/error-%d{yyyy-MM-dd}-%i.log">
<ThresholdFilter level="error" onMatch="ACCEPT"
onMismatch="DENY" />
<PatternLayout
pattern="%date{DEFAULT} |%-20.20thread |%-30.30logger{1}|%level{length=1}| %message%n" />
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="1 MB" />
</Policies>
<DefaultRolloverStrategy max="3" />
</RollingFile>
<RollingFile name="sql" fileName="runtime/logs/sql.log"
filePattern="runtime/logs/sql-%d{yyyy-MM-dd}-%i.log">
<PatternLayout
pattern="%date{DEFAULT} |%-20.20thread |%-30.30logger{1}|%level{length=1}| %message%n" />
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="1 MB" />
</Policies>
<DefaultRolloverStrategy max="3" />
</RollingFile>
<Async name="async">
<AppenderRef ref="ofbiz" />
<AppenderRef ref="stdout" />
<AppenderRef ref="error" />
</Async>
<Async name="sqlAsync">
<AppenderRef ref="sql" />
</Async>
</Appenders>
<Loggers>
<logger name="org.ofbiz.base.converter.Converters" level="warn" />
<logger name="org.apache" level="warn" />
<logger name="freemarker" level="warn" /> <!-- sql 以及耗费的执行时间 -->
<logger name="jdbc.sqltiming" level="WARN" additivity="false">
<appender-ref ref="sqlAsync" />
</logger>
<!-- 只有sql,没有执行时间 -->
<logger name="jdbc.sqlonly" level="OFF" additivity="false">
<appender-ref ref="sqlAsync" />
</logger>
<!-- 执行之后的返回结果 -->
<logger name="jdbc.resultsettable" level="OFF" additivity="false">
<appender-ref ref="sqlAsync" />
</logger>
<logger name="jdbc.resultset" level="OFF" additivity="false">
<appender-ref ref="sqlAsync" />
</logger>
<!-- 能看到数据库的连接数 -->
<logger name="jdbc.connection" level="OFF" additivity="false">
<appender-ref ref="sqlAsync" />
</logger>
<logger name="jdbc.audit" level="OFF" additivity="false">
<appender-ref ref="sqlAsync" />
</logger> <Root level="all">
<AppenderRef ref="async" />
</Root>
</Loggers>
</Configuration>

简单来说结构就是这样

日志配置
  日志定义
    输出位置1
    输出位置2
    输出位置3
    输出位置4

    异步输出1
      输出位置1
      输出位置2
      输出位置3
    异步输出2
      输出位置4

  日志配置
    配置包中的日志输出级别1(默认为root配置)
    配置包中的日志输出级别2(默认为root配置)
    配置包中的日志输出级别3(使用异步输出2中的配置)
    配置包中的日志输出级别3(使用异步输出2中的配置)

    root配置(使用异步输出1的配置)

日志框架学习(log4j2+slf4j)的更多相关文章

  1. springboot日志框架学习------slf4j和log4j2

    springboot日志框架学习------slf4j和log4j2 日志框架的作用,日志框架就是用来记录系统的一些行为的,可以通过日志发现一些问题,在出现问题之后日志是好的一个帮手. 市面上的日志框 ...

  2. 日志框架之2 slf4j+logback实现日志架构 · 远观钱途

    如何从缤纷复杂的日志系统世界筛选出适合自己的日志框架以及slf4j+logback的组合美妙之处?此文可能有帮助 logback介绍 Logback是由log4j创始人设计的另一个开源日志组件,官方网 ...

  3. 拨云见日,彻底弄清楚Java日志框架 log4j, logback, slf4j的区别与联系

    log4j 以及 logback, slf4j 官网 日志框架的困惑 作为一个正常的项目,是必须有日志框架的存在的,没有日志,很难追踪一些奇奇怪怪的系统问题. 但是,我们经常在项目的依赖中,见到奇奇怪 ...

  4. Java日志框架 (commons-logging,log4j,slf4j,logback)

    转自:http://blog.csdn.net/kobejayandy/article/details/17335407 如果对于commons-loging.log4j.slf4j.LogBack等 ...

  5. Log4j日志框架学习零到壹(一)

    日志是系统开发过程中用于排查问题重要的记录.通常使用日志来记录系统运行的行为,什么时间点发生了什么 事情.Java中常用的莫过于Log4j框架了.下面主要围绕Log4j的基础知识.Log4j的使用方式 ...

  6. Java日志框架(Commons-logging,SLF4j,Log4j,Logback)

    简介 在系统开发中,日志是很重要的一个环节,日志写得好对于我们开发调试,线上问题追踪等都有很大的帮助.但记日志并不是简单的输出信息,需要考虑很多问题,比如日志输出的速度,日志输出对于系统内存,CPU的 ...

  7. Java 日志框架概述(slf4j / log4j / JUL / Common-logging(JCL) / logback)

    一.简介 JAVA日志在初期可能官方并没有提供很好且实用的规范,导致各公司或OSS作者选择自行造轮子,这也导致了目前初学者觉得市面上 Java 日志库繁杂的局面. 现在市面流行以 slf4j(Simp ...

  8. log4j日志框架学习

    初识Log4j:      log4j有三个部分:           1.loggers 负责捕获日志信息.           2.appenders  负责输出信息到不同的目的地         ...

  9. Spring源码学习:第2步--使用SLF4j+Log4j日志框架替换掉其自身的commons-logging日志框架

    正如Spring官方文档所述,其底层的实现选择了commons-logging作为日志框架.这一"失足"性的选择,竟连Spring自身都抱怨.但是,谁叫Spring如此优秀呢,即使 ...

随机推荐

  1. UGUI中Event Trigger的基本用法

    UGUI中Event Trigger的基本用法 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chin ...

  2. 20155208徐子涵 2016-2017-2 《Java程序设计》第7周学习总结

    20155208徐子涵 2016-2017-2 <Java程序设计>第7周学习总结 教材学习内容总结 第十三章 时间与日期 13.1 认识时间与日期 就目前来说,即使标注为GMT(无论是文 ...

  3. HDACM2021(发工资)

    发工资咯:) Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Subm ...

  4. 【牛客练习赛22 C】

    https://www.nowcoder.com/acm/contest/132/C 题目大意:在n个区间中取出n个数,相加的和一共会出现多少种结果. 题目分析:对于这种挑选数字相加,由于每一步不同的 ...

  5. Python基础练习及答案

    1.请用代码实现:利用下划线将列表的每一个元素拼接成字符串,li=['alex', 'eric', 'rain'] 该题目主要是考的字符串的拼接,join方法, s = "" li ...

  6. 高斯消元 o(n^3) 取摸和不取摸

    #include<bits/stdc++.h> using namespace std; ; int a[MAXN][MAXN];//增广矩阵 int x[MAXN];//解集 bool ...

  7. linux----别名

    经常一些命令太长,输入太麻烦,给该命令起个别名,直接执行,简单又方便. 1.查看别名 alias 2.编辑别名 vi ~/.brashrc 3.添加自己的别名 例如:重启网卡 alias netres ...

  8. Js判断字符的种类

    Js判断字符的种类:unicode范围: 48-57:0-9    数字字符 65-90:A-Z    大写字母 97-122: a-z  小写字母 19968-40869:汉字 其他字符 实例:输出 ...

  9. HTTP请求属性说明

    1)URL:页面地址. 2)Method :页面的提交方式,POST或GET. 3)EncType:编码类型.此参数给出一个内容类型(Content-Type),指定其做为回放脚本时“Content- ...

  10. Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' 解决办法

    启动mysql 报错: ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/m ...