### 日志系统归类以及关系


常用的日志框架: slf4j、logback 、log4j、log4j2、JUL(java util logging)、jboss-logging、JCL(jakarta common logging)

  1. log4j: 最开始的一个日志系统。

  2. JUL: jdk自带的日志系统

  3. jboss-logging: jboss公司的日志系统

  4. JCL: apache 开源的日志框架

  5. slf4j: 基于门面模式的一个对日志框架进行抽象的接口(类似于JDBC驱动)

  6. logback: 是基于slf4j接口进行实现的一个具体的日志系统

  7. log4j2: 同样是基于slf4j接口实现的一个具体日志系统,该系统使用了disruptor库,在异步的情况下,性能提高很多

日志的三个组件

Logger

一个日志系统可以有多个Logger,可以根据自己的情况配置,一个logger可以有多个appender

Appender

代表的是日志的输出目的地。可以输出到Console, File, JDBC, JMS ,Kafka ,NOSQL, Socket等。 它可以分为异步Appender 和非异步Appender

Layout

Layout:作用为控制输出流的格式。可以为Parttern格式,JSON格式,HTML格式,CSV格式,XML格式等。

	        <PatternLayout >
<Charset>UTF-8</Charset>
<!-- 时间 类型 线程 文件位置 具体的日志消息 换行-->
<Pattern>%d %p %c{1.} [%t] %F %m %n</Pattern>
</PatternLayout>

slf4j的使用

import org.slf4j.Logger;
import org.slf4j.LoggerFactory; public class LoggerTest {
private static final Logger LOG = LoggerFactory.getLogger(LoggerTest.class); public void test() {
//日志级别从低到高:
//trace < debug < info < warn < error
LOG.trace(" trace log");
LOG.debug(" debug log");
LOG.info(" info log");
LOG.warn(" warn log");
LOG.error(" error log");
}
}

项目中构建日志系统


使用slfj4抽象接口来编程,这样不用关系底层的实现是什么,只需要最后配置需要的种类即可。

注意:在构建项目的时候,通常会使用第三方的框架,但是多个第三方框架可能会使用不同的日志系统,为了统一日志,可以使用如下步骤.

统一日志框架步骤:

  1. 将第三方框架中的日志系统排除掉

    		<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <exclusions>
    <exclusion>
    <groupId>commons-logging</groupId>
    <artifactId>commons-logging</artifactId>
    </exclusion>
    </exclusions>
    </dependency>
  2. 用中间适配包来替换原来的日志框架

  3. 导入我们需要的slf4j实现

### 使用例子


java项目日志系统的总结的更多相关文章

  1. 使用Slf4j集成Log4j2构建项目日志系统的完美解决方案

    一.背景 最近因为公司项目性能需要,我们考虑把以前基于的log4j的日志系统重构成基于Slf4j和log4j2的日志系统,因为,使用slf4j可以很好的保证我们的日志系统具有良好的兼容性,兼容当前常见 ...

  2. 你还不懂java的日志系统吗

    一.背景 在java的开发中,使用最多也绕不过去的一个话题就是日志,在程序中除了业务代码外,使用最多的就是打印日志.经常听到的这样一句话就是"打个日志调试下",没错在日常的开发.调 ...

  3. 部署java项目日志乱码求解!!!

    springboot项项目打成war包放到tomcat9上,项目日志出现乱码,tomcat乱码已解决,这个不知道咋回事!!!!!! 这是项目的打包坐标 <parent> <group ...

  4. java项目日志写到logstash-TCP/UDP

    好处:项目日志写到logstash,然后发送到ElasticSearch,可以方便查看搜索日志,还可以做报表分析. logstash是一个数据采集工具,有多种渠道,比如文件,tcp,udp等,如果是采 ...

  5. mysql如何查询多样同样的表/sql分表查询、java项目日志表分表的开发思路/按月分表

    之前开发的一个监控系统,数据库的日志表是单表,虽然现在数据还不大并且做了查询sql优化,不过以后数据库的日志表数据肯定会越来越庞大,将会导致查询缓慢,所以把日志表改成分表,日志表可以按时间做水平分表, ...

  6. 常见java日志系统的搭配详解:关于slf4j log4j log4j2 logback jul jcl commons-logging jdk-logging

    先看一张图: 是不是有点晕, 晕就对了.这个仅仅是 slf4j 的情况,实际上, 我们不仅要接触到 slf4j ,有时候还会接触其他的日志系统.且看下文分解. 1 直接使用各个日志系统 1.1 直接使 ...

  7. Java 为程序创建日志系统

    使用JAVA创建日志系统有两种方法 1.使用log4j操作日志文件 2.使用系统重定向输出日志信息 方法1:使用log4j操作日志文件(可使用jar或者xml) 步骤1:下载log4j.jar 下载地 ...

  8. 普通Java项目中使用Sl4j+Log4j2打印日志

        因工作需要,采用JavaFx开发了一个windows窗口程序.在开发过程中,由于没有引入日志框架,只能自己手动在控制台打印些信息,给调试带来了很多麻烦:因此决定引入日志框架.由于之前接触的项目 ...

  9. Java日志系统框架的设计与实现

    推荐一篇好的文章介绍java日志系统框架的设计的文章:http://soft.chinabyte.com/database/438/11321938.shtml 文章内容总结: 日志系统对跟踪调试.程 ...

随机推荐

  1. C11线程管理:异步操作

    1.异步操作 C++11提供了异步操作相关的类,std::future.std::promise和std::package_task.std::future作为异步结果的传输通道,方便的获取线程函数的 ...

  2. Jeson老师写的nginx切割脚本

    #Jeson #Email:jeson@iaskjob.com #变量定义:access.error日志文件列表 NGINX_LOG=(imoocc_com_access iaskjob_com er ...

  3. python3爬虫.4.下载煎蛋网妹子图

    开始我学习爬虫的目标 ----> 煎蛋网 通过设置User-Agent获取网页,发现本该是图片链接的地方被一个js函数代替了 于是全局搜索到该函数 function jandan_load_im ...

  4. Friends and Berries URAL - 2067 (计算三点共线和计算的时候的注意点)

    题目链接:https://cn.vjudge.net/problem/URAL-2067 具体思路:判断三点共线就可以了,只有一对点能满足,如果一对就没有那就没有满足的. 在计算的时候,要注意,如果是 ...

  5. 深入理解Spring系列之六:bean初始化

    转载 https://mp.weixin.qq.com/s/SmtqoELzBEdZLo8wsSvUdQ <深入理解Spring系列之四:BeanDefinition装载前奏曲>中提到,对 ...

  6. Lucene7.2.1系列(三)查询及高亮

    系列文章: Lucene系列(一)快速入门 Lucene系列(二)luke使用及索引文档的基本操作 Lucene系列(三)查询及高亮 一 准备 创建项目并添加Maven依赖 <dependenc ...

  7. Google Gapps – Download Gapps for Android【转】

    http://wiki.rootzwiki.com/Google_Apps http://productforums.google.com/forum/#!forum/apps http://www. ...

  8. Linux中等待队列的实现

    1.       等待队列数据结构 等待队列由双向链表实现,其元素包括指向进程描述符的指针.每个等待队列都有一个等待队列头(wait queue head),等待队列头是一个类型为wait_quequ ...

  9. ZebraDatepicker中文显示

    解决方法:①<script type="text/javascript" src="xx.js" charset="UTF-8"> ...

  10. 斐讯路由器L(联)B(壁)K-码兑换包安全下车通道(图文教程)

    大家好,最近大家比较关心的斐讯路由器如何下车问题,楼主亲自试提取了一遍,记录下过程,欢迎大家一起讨论. 言归正传,上图,上图! No.1 打开斐讯提供的良心k码退换通道: https://tech-s ...