关于logback:

http://www.cnblogs.com/warking/p/5710303.html

官方文档

使用logback:

idea创建maven项目

修改pom.xml添加依赖:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <groupId>com.dylan.java</groupId>
<artifactId>javacore</artifactId>
<version>1.0-SNAPSHOT</version> <dependencies>
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.21</version>
</dependency>
<!-- https://mvnrepository.com/artifact/ch.qos.logback/logback-core -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.1.7</version>
</dependency>
<!-- https://mvnrepository.com/artifact/ch.qos.logback/logback-classic -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.7</version>
<scope>test</scope>
</dependency> </dependencies>
</project>

配置logback.xml:

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="30 seconds"> <property name="log.base" value="E:/ideaProjects/log/" /> <appender name="startup.console" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>[%-5level][%d{yyyy-MM-dd HH:mm:ss}][%F:%L] - %msg%n</pattern>
</encoder>
</appender> <appender name="startup.file" class="ch.qos.logback.core.rolling.RollingFileAppender">
<Encoding>UTF-8</Encoding>
<File>${log.base}startup.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${log.base}startup_%d{yyyy-MM-dd}.log</FileNamePattern>
<!--保留30天-->
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<!-- <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>[%-5level][%d{yyyy-MM-dd HH:mm:ss}][%F:%L] - %msg%n</pattern>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{5} - %msg%n</pattern>
</encoder> -->
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
</pattern>
</layout>
</appender> <root level="ERROR">
<appender-ref ref="startup.console"/>
</root> <root level="DEBUG">
<appender-ref ref="startup.console"/>
</root> <root level="DEBUG">
<appender-ref ref="startup.file"/>
</root> </configuration>

创建测试类:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import java.util.Random; /**
* Created by dylan-pc on 2017/10/23.
*/
public class TestLogback {
private static final transient Logger log= LoggerFactory.getLogger(TestLogback.class); public static void main(String args[]){
//System.out.println("Hello World!");
log.info("程序开始!");
try {
for (int i=1; i<=20; i++){
int r1=(int)(Math.random()*10); //被除数
int r2=(int)(Math.random()*100+99); //除数
log.debug("第"+i+"次计算表达式为:"+r2+"/"+r1);
log.debug("计算结果:"+(r2/r1));
log.info("----------------------------------");
} }catch (ArithmeticException e){
log.error("程序异常!除数等于0!");
//log.error(e.getStackTrace().toString());
}catch (Exception e){
log.error("程序异常!"+e.getMessage());
} log.trace("程序结束!"); } }

查看控制台和日志文件:

"C:\Program Files\Java\jdk1.7.0_80\bin\java" -Didea.launcher.port=7533 "-Didea.launcher.bin.path=D:\program\IntelliJ IDEA 14.1.5\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.7.0_80\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.7.0_80\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.7.0_80\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.7.0_80\jre\lib\jce.jar;C:\Program Files\Java\jdk1.7.0_80\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.7.0_80\jre\lib\jfxrt.jar;C:\Program Files\Java\jdk1.7.0_80\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.7.0_80\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.7.0_80\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.7.0_80\jre\lib\resources.jar;C:\Program Files\Java\jdk1.7.0_80\jre\lib\rt.jar;C:\Program Files\Java\jdk1.7.0_80\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.7.0_80\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.7.0_80\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.7.0_80\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.7.0_80\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.7.0_80\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.7.0_80\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.7.0_80\jre\lib\ext\zipfs.jar;E:\ideaProjects\test\javacore\target\test-classes;E:\ideaProjects\test\javacore\target\classes;D:\program\apache-maven-3.5.0\local-repo\org\slf4j\slf4j-api\1.7.21\slf4j-api-1.7.21.jar;D:\program\apache-maven-3.5.0\local-repo\ch\qos\logback\logback-core\1.1.7\logback-core-1.1.7.jar;D:\program\apache-maven-3.5.0\local-repo\ch\qos\logback\logback-classic\1.1.7\logback-classic-1.1.7.jar;D:\program\IntelliJ IDEA 14.1.5\lib\idea_rt.jar" com.intellij.rt.execution.application.AppMain TestLogback

22:37:31,675 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.groovy]

22:37:31,675 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]

22:37:31,675 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback.xml] at [file:/E:/ideaProjects/test/javacore/target/classes/logback.xml]

22:37:31,765 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - debug attribute not set

22:37:31,777 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - Will scan for changes in [file:/E:/ideaProjects/test/javacore/target/classes/logback.xml]

22:37:31,777 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - Setting ReconfigureOnChangeTask scanning period to 30 seconds

22:37:31,789 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.ConsoleAppender]

22:37:31,793 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [startup.console]

22:37:31,863 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.rolling.RollingFileAppender]

22:37:31,866 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [startup.file]

22:37:31,871 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@13:19 - no applicable action for [Encoding], current ElementPath  is [[configuration][appender][Encoding]]

22:37:31,880 |-INFO in c.q.l.core.rolling.TimeBasedRollingPolicy@1026546903 - No compression will be used

22:37:31,882 |-INFO in c.q.l.core.rolling.TimeBasedRollingPolicy@1026546903 - Will use the pattern E:/ideaProjects/log/startup_%d{yyyy-MM-dd}.log for the active file

22:37:31,887 |-INFO in c.q.l.core.rolling.DefaultTimeBasedFileNamingAndTriggeringPolicy - The date pattern is 'yyyy-MM-dd' from file name pattern 'E:/ideaProjects/log/startup_%d{yyyy-MM-dd}.log'.

22:37:31,887 |-INFO in c.q.l.core.rolling.DefaultTimeBasedFileNamingAndTriggeringPolicy - Roll-over at midnight.

22:37:31,890 |-INFO in c.q.l.core.rolling.DefaultTimeBasedFileNamingAndTriggeringPolicy - Setting initial period to Mon Oct 23 22:36:58 CST 2017

22:37:31,894 |-WARN in ch.qos.logback.core.rolling.RollingFileAppender[startup.file] - This appender no longer admits a layout as a sub-component, set an encoder instead.

22:37:31,894 |-WARN in ch.qos.logback.core.rolling.RollingFileAppender[startup.file] - To ensure compatibility, wrapping your layout in LayoutWrappingEncoder.

22:37:31,894 |-WARN in ch.qos.logback.core.rolling.RollingFileAppender[startup.file] - See also http://logback.qos.ch/codes.html#layoutInsteadOfEncoder for details

22:37:31,895 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[startup.file] - Active log file name: E:/ideaProjects/log/startup.log

22:37:31,895 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[startup.file] - File property is set to [E:/ideaProjects/log/startup.log]

22:37:31,897 |-INFO in ch.qos.logback.classic.joran.action.RootLoggerAction - Setting level of ROOT logger to ERROR

22:37:31,897 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [startup.console] to Logger[ROOT]

22:37:31,898 |-INFO in ch.qos.logback.classic.joran.action.RootLoggerAction - Setting level of ROOT logger to DEBUG

22:37:31,898 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [startup.console] to Logger[ROOT]

22:37:31,898 |-INFO in ch.qos.logback.classic.joran.action.RootLoggerAction - Setting level of ROOT logger to DEBUG

22:37:31,898 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [startup.file] to Logger[ROOT]

22:37:31,898 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - End of configuration.

22:37:31,899 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@114bc6a3 - Registering current configuration as safe fallback point
[INFO ][2017-10-23 22:37:31][TestLogback.java:14] - 程序开始!

[DEBUG][2017-10-23 22:37:31][TestLogback.java:19] - 第1次计算表达式为:107/9

[DEBUG][2017-10-23 22:37:31][TestLogback.java:20] - 计算结果:11

[INFO ][2017-10-23 22:37:31][TestLogback.java:21] - ----------------------------------

[DEBUG][2017-10-23 22:37:31][TestLogback.java:19] - 第2次计算表达式为:143/9

[DEBUG][2017-10-23 22:37:31][TestLogback.java:20] - 计算结果:15

[INFO ][2017-10-23 22:37:31][TestLogback.java:21] - ----------------------------------

[DEBUG][2017-10-23 22:37:31][TestLogback.java:19] - 第3次计算表达式为:192/7

[DEBUG][2017-10-23 22:37:31][TestLogback.java:20] - 计算结果:27

[INFO ][2017-10-23 22:37:31][TestLogback.java:21] - ----------------------------------

[DEBUG][2017-10-23 22:37:31][TestLogback.java:19] - 第4次计算表达式为:163/4

[DEBUG][2017-10-23 22:37:31][TestLogback.java:20] - 计算结果:40

[INFO ][2017-10-23 22:37:31][TestLogback.java:21] - ----------------------------------

[DEBUG][2017-10-23 22:37:31][TestLogback.java:19] - 第5次计算表达式为:148/4

[DEBUG][2017-10-23 22:37:31][TestLogback.java:20] - 计算结果:37

[INFO ][2017-10-23 22:37:31][TestLogback.java:21] - ----------------------------------

[DEBUG][2017-10-23 22:37:31][TestLogback.java:19] - 第6次计算表达式为:193/0

[ERROR][2017-10-23 22:37:31][TestLogback.java:25] - 程序异常!除数等于0!

[DEBUG][2017-10-23 22:37:31][TestLogback.java:31] - 程序结束!
Process finished with exit code 0

start

...

19:39:14.928 [main] DEBUG TestLogback - 第9次计算表达式为:194/5
19:39:14.928 [main] DEBUG TestLogback - 计算结果:38
19:39:14.928 [main] INFO  TestLogback - ----------------------------------
19:39:14.928 [main] DEBUG TestLogback - 第10次计算表达式为:160/2
19:39:14.928 [main] DEBUG TestLogback - 计算结果:80
19:39:14.928 [main] INFO  TestLogback - ----------------------------------
19:44:39.451 [main] INFO  TestLogback - 程序开始!
19:44:39.459 [main] DEBUG TestLogback - 第1次计算表达式为:116/8
19:44:39.459 [main] DEBUG TestLogback - 计算结果:14
19:44:39.459 [main] INFO  TestLogback - ----------------------------------
19:44:39.459 [main] DEBUG TestLogback - 第2次计算表达式为:194/5
19:44:39.459 [main] DEBUG TestLogback - 计算结果:38
19:44:39.459 [main] INFO  TestLogback - ----------------------------------
19:44:39.459 [main] DEBUG TestLogback - 第3次计算表达式为:109/3
19:44:39.459 [main] DEBUG TestLogback - 计算结果:36
19:44:39.459 [main] INFO  TestLogback - ----------------------------------
19:44:39.459 [main] DEBUG TestLogback - 第4次计算表达式为:109/0
19:44:39.459 [main] ERROR TestLogback - 程序异常!

...

logback日志组件使用案例的更多相关文章

  1. Logback 日志组件的使用

    Logback 是由 log4j 创始人设计的又一个开源日志组件. 一. logback 的介绍 ​ logback 当前分成三个模块:logback-core,logback- classic 和 ...

  2. 五分钟秒懂Java日志组件

    Java中有许多种日志记录方式,有些API有占位符,有些API没占位符,初学的人可能会搞不清楚这些日志组件的由来.我一开始的时候也是很懵逼的,后来一点点弄懂了于是就又了这篇文章. 在Java中进行日志 ...

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

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

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

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

  5. 日志组件logback的介绍及配置使用方法

    一.logback的介绍 Logback是由log4j创始人设计的又一个开源日志组件.logback当前分成三个模块:logback-core,logback- classic和logback-acc ...

  6. 日志组件 logback

    一.简介 Logback是由log4j创始人设计的又一个开源日志组件.logback当前分成三个模块:logback-core,logback- classic和logback-access.logb ...

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

    common-logging common-logging是apache提供的一个通用的日志接口.用户可以自由选择第三方的日志组件作为具体实现,像log4j,或者jdk自带的logging, comm ...

  8. 日志处理(二) 日志组件logback的介绍及配置使用方法(转)

    本文转自:http://www.cnblogs.com/yuanermen/archive/2012/02/13/2348942.html http://www.cnblogs.com/yuanerm ...

  9. 转:日志组件logback的介绍及配置使用方法

    转自:http://blog.csdn.net/zgmzyr/article/details/8267072 一.logback的介绍 Logback是由log4j创始人设计的又一个开源日志组件.lo ...

  10. 日志组件logback的介绍及配置使用方法(一)

    一.logback的介绍 Logback是由log4j创始人设计的又一个开源日志组件.logback当前分成三个模块:logback-core,logback- classic和logback-acc ...

随机推荐

  1. [转帖]Web技术(四):TLS 握手过程与性能优化(TLS 1.2与TLS 1.3对比)

    https://blog.csdn.net/m0_37621078/article/details/106126033?ops_request_misc=%257B%2522request%255Fi ...

  2. [转帖]云数据库是杀猪盘么,去掉中间商赚差价,aws数据库性能提升 10 倍!价格便宜十倍。

    https://tidb.net/blog/021059f1 于是乎dba中的冯大嘴喊出了云数据库就是杀猪盘.让每个公司自建数据库. 那么有没有一种数据库又便宜又好用呢.有 哪就是tidb数据库. 之 ...

  3. [转帖]Kafka-Kraft 模式架构部署

    news文章来源: Kafka-Kraft 模式架构部署 Kafka网址:https://kafka.apache.org/ PS:因环境原因此文档内端口都有修改! 1.去官网下载二进制包 PS:3. ...

  4. 【转帖】3.JVM内存结构概述

    目录 1.JVM内存结构 1.JVM内存结构 在JVM系列的第一篇文章中已经给出了JVM内存结构的简图,下面是JVM内存结构更加详细的图. 同样,JVM的内存结构可以分为上中下3层. 上层主要是类加载 ...

  5. Linux用户以及ssh安全相关设置

    Linux用户相关操作 摘要 最近重保, 需要进行网络安全防护. 部分同事处理过程总是顺序有一些不太对的情况. 同时发现自对Linux用户设置也存在很多不清不楚的地方 所以趁着周末学习和总结一下. 用 ...

  6. Mysql数据库查看Database的大小的方法

    最简单的方法为: select concat(round(sum(data_length/1024/1024),2),'MB') as data from INFORMATION_SCHEMA.tab ...

  7. webpack配置scss

    安装依赖: cnpm i sass-loader -D cnpm i node-sass -D node-sass尽量去使用cnpm去安装 创建index2.scss文件 div { h2 { bac ...

  8. 年末将至,Java 开发者必须了解的 16 个Java 顶级开源项目!

    年末将至,值得你关注的16个Java 开源项目! 本文已经收录自笔者开源的 JavaGuide: https://github.com/Snailclimb/JavaGuide ([Java学习+面试 ...

  9. 21.14 Python 实现Web指纹识别

    在当今的Web安全行业中,识别目标网站的指纹是渗透测试的常见第一步.指纹识别的目的是了解目标网站所使用的技术栈和框架,从而进一步根据目标框架进行针对性的安全测试,指纹识别的原理其实很简单,目前主流的识 ...

  10. C/C++ 关于运算符重载笔记

    加号运算符重载: 重载加号运算符,让 p3 = p1 + p2 改成 p3.mage = p1.mage + p2.mage 实现两个数据成员的相加. 告诉编译器,两个类中的数据成员应该怎么相加. 成 ...