添加maven依赖

<dependencies>
<!--https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.25</version>
</dependency>
<!-- https://mvnrepository.com/artifact/ch.qos.logback/logback-classic -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
<!-- https://mvnrepository.com/artifact/ch.qos.logback/logback-core -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.2.3</version>
</dependency>
<!-- https://mvnrepository.com/artifact/ch.qos.logback/logback-access -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-access</artifactId>
<version>1.2.3</version>
</dependency>
</dependencies>

resources目录下配置logback.xml

<?xml version="1.0" encoding="utf-8" ?>
<configuration debug="true"> <!--设置日志上下文名称,后面输出格式中可以通过定义 %contextName 来打印日志上下文名称-->
<contextName>sk-log</contextName>
<!--用来设置相关变量,通过key-value的方式配置,然后在后面的配置文件中通过 ${key}来访问-->
<property name = "sk.name" value ="test"></property> <!--======================================ConsoleAppender===================================================================-->
<!--日志输出组件,主要负责日志的输出以及格式化日志。 stdout:标准输出-->
<appender name ="stdout" class="ch.qos.logback.core.ConsoleAppender">
<!--定义了一个过滤器,在LEVEL之下的日志输出不会被打印出来 这个和logger里的level共同决定在stdout输出的级别(filter非必需的)
临界值过滤器,过滤掉低于指定临界值的日志。当日志级别等于或高于临界值时,过滤器返回NEUTRAL;当日志级别低于临界值时,日志会被拒绝。 -->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>debug</level>
</filter>
<!--级别过滤器,根据日志级别进行过滤。如果日志级别等于配置级别,过滤器会根据onMath 和 onMismatch接收或拒绝日志
<level>:设置过滤级别
<onMatch>:用于配置符合过滤条件的操作
<onMismatch>:用于配置不符合过滤条件的操作-->
<!-- <filter class="ch.qos.logback.classic.filter.LevelFilter">-->
<!-- <level>debug</level>-->
<!-- <onMatch>ACCEPT</onMatch>-->
<!-- <onMismatch>DENY</onMismatch>-->
<!-- </filter>-->
<!-- encoder 默认配置为PatternLayoutEncoder -->
<!--定义控制台输出格式-->
<!--
%d{yyyy-MM-dd HH:mm:ss} 时间格式 hh是12h制 HH是24h制
[%thread] 线程
%-5level 级别
%logger{36} 日志包 36包长度
[%file : %line] 目标类 和 行数
%msg log信息
%n 换行
(encoder必需的)-->
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} [%file : %line] - %msg%n</pattern>
</encoder>
</appender> <!--==========================RollingFileAppender===============================================================================--> <!--<appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">--> <!--&lt;!&ndash;如果是 true,日志被追加到文件结尾,如果是 false,清空现存文件,默认是true-->
<!--but 我加了之后 警告 Append mode is mandatory for RollingFileAppender. Defaulting to append=true. 我还是不加了&ndash;&gt;-->
<!--&lt;!&ndash; <append>false</append>&ndash;&gt;--> <!--<filter class="ch.qos.logback.classic.filter.ThresholdFilter">-->
<!--<level>trace</level>-->
<!--</filter>-->
<!--&lt;!&ndash;rollingPolicy没写的话 会有警告 No TriggeringPolicy was set for the RollingFileAppender named file 没有输出本地文件&ndash;&gt;-->
<!--<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">-->
<!--<fileNamePattern>E:/logDemo1/${sk.name}.log.%i.%d{yyyy-MM-dd}</fileNamePattern>-->
<!--&lt;!&ndash;30d周期&ndash;&gt;-->
<!--<maxHistory>30</maxHistory>-->
<!--&lt;!&ndash;每个文件最大10M&ndash;&gt;-->
<!--<maxFileSize>10MB</maxFileSize>-->
<!--</rollingPolicy>--> <!--<encoder>-->
<!--<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} [%file : %line] - %msg%n</pattern>-->
<!--</encoder>-->
<!--</appender>--> <!--=========================================================================================================--> <!--root是默认的logger 这里没设定输出级别-->
<root>
<!--定义了appender,日志会通过往appender里面写-->
<appender-ref ref="stdout"/>
<appender-ref ref="file"/>
</root> <!--==================================指定包的日志======================================================-->
<!--这个logger没有指定appender,它会继承root节点中定义的那些appender -->
<logger name="edu.cn" level="debug">
<!-- <appender-ref ref="stdout"/>-->
</logger> <!--通过 LoggerFactory.getLogger("Test3") 可以获取到这个logger
additivity="false" 没有它 输出双倍 自身的和继承的root的appender-->
<logger name="Test3" level="trace" additivity="false">
<appender-ref ref="stdout"/>
<appender-ref ref="file"/>
</logger> <!--由于设置了 additivity="false" ,所以输出时不会使用rootLogger的appender-->
<!--但是这个logger本身又没有配置appender,所以使用这个logger输出日志的话就不会输出到任何地方-->
<!-- <logger name="Test3" level="trace" additivity="false"></logger>--> </configuration>

使用:下图中3是根据2的值同步变化的,2写哪个类名,3就显示哪个类名,为了日志输出时定位到所在类,所以3应该与1的值保持一致,所以2的值应尽可能写成1的值,即与所在类名相同

slf4j+logback&logback.xml的更多相关文章

  1. java日志组件介绍(common-logging,log4j,slf4j,logback )

    转自:http://www.blogjava.net/daiyongzhi/archive/2014/04/13/412364.html common-logging是apache提供的一个通用的日志 ...

  2. slf4j log4j logback关系详解和相关用法

    slf4j log4j logback关系详解和相关用法 写java也有一段时间了,一直都有用slf4j log4j输出日志的习惯.但是始终都是抱着"拿来主义"的态度,复制粘贴下配 ...

  3. 【转】logback logback.xml常用配置详解(二)<appender>

    原创文章,转载请指明出处:http://aub.iteye.com/blog/1101260, 尊重他人即尊重自己 详细整理了logback常用配置, 不是官网手册的翻译版,而是使用总结,旨在更快更透 ...

  4. 【转】logback logback.xml常用配置详解(一)<configuration> and <logger>

    原创文章,转载请指明出处:http://aub.iteye.com/blog/1101260, 尊重他人即尊重自己 详细整理了logback常用配置, 不是官网手册的翻译版,而是使用总结,旨在更快更透 ...

  5. lombok+slf4j+logback SLF4J和Logback日志框架详解

    maven 包依赖 <dependency> <groupId>org.projectlombok</groupId> <artifactId>lomb ...

  6. slf4j,log4j,logback 初步使用

    log4j,slf4j,logback简单介绍见 LogBack简易教程 Logback浅析 简单的将,slf4j是一个日志的框架,有各种日志的接口,但是并不包含实际的写日志的方法. log4j,lo ...

  7. 转:java日志组件介绍(common-logging,log4j,slf4j,logback )

    原网址:http://www.blogjava.net/daiyongzhi/archive/2014/04/13/412364.html common-logging common-logging是 ...

  8. java日志,(commons-loging 、log4j 、slf4j 、LogBack介绍)

    如果对于commons-loging .log4j .slf4j .LogBack 等都已经非常清楚了,可以忽略本文.几次解决日志冲突问题时对这几个概念的简单总结,希望对这块基础没有理解透的同学能有所 ...

  9. How to setup SLF4J and LOGBack in a web app - fast--转载

    原文:https://wiki.base22.com/display/btg/How+to+setup+SLF4J+and+LOGBack+in+a+web+app+-+fast Logback is ...

  10. logback logback.xml 常用配置详解

    一:根节点<configuration>包含的属性: scan: 当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true. scanPeriod: 设置监测配置文 ...

随机推荐

  1. MySQL连接方式小结

    1.   连接方式 1.1  方式1 /usr/local/mysql5./bin/mysql -p 此方法默认采用root@localhost用户登录, 1.2  方式2 /usr/local/my ...

  2. Java并发编程(一):进程和线程之由来

    转自:http://www.cnblogs.com/dolphin0520/p/3910667.html 在前面,已经介绍了Java的基础知识,现在我们来讨论一点稍微难一点的问题:Java并发编程.当 ...

  3. 【Linux】一些常用命令(待整理)

    一.关机重启命令 二.查询ip 三.查询杀死进程 四.CentOS7 关闭防火墙 五.vim常用 5.1 搜索 5.2 设置行号 剪切 替换 一.关机重启命令 shutdown -h 10 #计算机将 ...

  4. idea中applicationContext-trans.xml中的Cannot resolve bean 'dataSource'...的问题解决

    问题如下: (applicationContext-trans.xml中的部分截图) 先了解问题是怎么出现的: 此处的dataSource是在applicationContext-dao.xml中配置 ...

  5. OPENLDAP 服务搭建和后期管理

    LDAP 服务 本文首发:https://www.cnblogs.com/somata/p/OPENLDAPServerConfigAndPostManagement.html 本文主要在debian ...

  6. 《剑指offer》:[62]序列化二叉树

    题目:请实现两个函数,分别来序列化和反序列化二叉树. 方案分析:我们知道通过二叉树的中序和任何一个前或者后续遍历都可以反序列化一棵二叉树,但是这样做有一个缺点就是,序列化的数据不能有重复的数据,否则会 ...

  7. SqlServer 2014还原数据库时提示:无法在已有的""上还原文件,请重新发出RESTORE语句,用WITH REPLACE来覆盖原先存在的文件

    场景 SQL Server 2014在还原数据库时提示: 无法在已有的""上还原文件,请重新发出RESTORE语句,用WITH REPLACE来覆盖原先存在的文件... 实现 在还 ...

  8. MySQL优化之索引原理(二)

    一,前言 ​ 上一篇内容说到了MySQL存储引擎的相关内容,及数据类型的选择优化.下面再来说说索引的内容,包括对B-Tree和B+Tree两者的区别. 1.1,什么是索引 ​ 索引是存储引擎用于快速找 ...

  9. 控制执行流程之return

    1 .无条件分支的关键词:return, break,continue,它们在程序中表示这个分支无需任何测试也可以发生.今天我们说下return. 2. return 作用:(1)给当前方法返回值:( ...

  10. PTA A1009&A1010

    第五天 A1009 Product of Polynomials (25 分) 题目内容 This time, you are supposed to find A×B where A and B a ...