java项目日志系统的总结

目录

  • 日志系统归类以及关系
  • 日志的三个组件
  • slf4j的使用
  • 项目中构建日志系统
  • 使用例子

日志系统归类以及关系



常用的日志框架: 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项目日志系统的总结

原文地址:https://www.cnblogs.com/henuzyy/p/10127190.html

时间: 2024-10-02 18:32:34

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

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

一.背景 最近因为公司项目性能需要,我们考虑把以前基于的log4j的日志系统重构成基于Slf4j和log4j2的日志系统,因为,使用slf4j可以很好的保证我们的日志系统具有良好的兼容性,兼容当前常见几种日志系统,而使用log4j2而不是log4j是因为Log4j 1.x 在高并发情况下出现死锁导致cpu使用率异常飙升,而Log4j2.0基于LMAX Disruptor的异步日志在多线程环境下性能会远远优于Log4j 1.x和logback(官方数据是10倍以上). 关于slf4j的原理以及优点

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

之前开发的一个监控系统,数据库的日志表是单表,虽然现在数据还不大并且做了查询sql优化,不过以后数据库的日志表数据肯定会越来越庞大,将会导致查询缓慢,所以把日志表改成分表,日志表可以按时间做水平分表,我是按月分的,每个月一张表,这时候的问题是 数据库有多张同样的分表如何根据条件查询? 在进行分页的时候如何计算总记录数?如何查询出所有分表? 每个月的新表是如何创建?系统如何自动创建? 不确定哪个分表的情况如何查询某一条详细记录? 分表查询分表查询可以用union或者union all进行查询uni

Java 为程序创建日志系统

使用JAVA创建日志系统有两种方法 1.使用log4j操作日志文件 2.使用系统重定向输出日志信息 方法1:使用log4j操作日志文件(可使用jar或者xml) 步骤1:下载log4j.jar 下载地址:http://mirrors.hust.edu.cn/apache/logging/log4j/1.2.17/log4j-1.2.17.zip 步骤2:导入log4j.jar 1.在当前工程处右键>new(新建)>Folder(文件夹)<没找到的话选Other>wizards>

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

因工作需要,采用JavaFx开发了一个windows窗口程序.在开发过程中,由于没有引入日志框架,只能自己手动在控制台打印些信息,给调试带来了很多麻烦:因此决定引入日志框架.由于之前接触的项目大部分都是javaWeb项目,web项目的日志输出已经难不倒我了.但普通java项目日志输出配置还是第一次接触,因此记录下整个过程,方便后续借鉴. 技术概述:采用Sl4j作为日志门面,Log4j2作为日志输出的具体实现:同时结合lombok插件,减少代码的书写. 一.相关Maven依赖 由于copy jar

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

推荐一篇好的文章介绍java日志系统框架的设计的文章:http://soft.chinabyte.com/database/438/11321938.shtml 文章内容总结: 日志系统对跟踪调试.程序状态记录.数据恢复等功能有重要作用 日志系统一般作为服务进程或者系统调用存在,我们一般程序中使用系统调用 常用日志系统包括log4j的简单介绍 日志系统的系统架构 日志系统的信息分级 日志输出的设计 下面是全文的引用: 在Java领域,存在大量的日志组件,open-open收录了21个日志组件.日

Java项目中如何使用log4j和slf4j实现日志打印

什么是log4j? Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.GUI组件,甚至是套接口服务器.NT的事件记录器.UNIX Syslog守护进程等:我们也可以控制每一条日志的输出格式:通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程.最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码. 什么是slf4j? SLF4J,即简单日志门面(Simple Logging Facade fo

走进JavaWeb技术世界9:Java日志系统的诞生与发展

> 微信公众号[黄小斜]大厂程序员,互联网行业新知,终身学习践行者.关注后回复「Java」.「Python」.「C++」.「大数据」.「机器学习」.「算法」.「AI」.「Android」.「前端」.「iOS」.「考研」.「BAT」.「校招」.「笔试」.「面试」.「面经」.「计算机基础」.「LeetCode」 等关键字可以获取对应的免费学习资料. ![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9waWMzLnpoaW1nLmNvbS84MC92Mi1jND

基于sentry的前端错误监控日志系统(部署sentry服务器/前端项目部署)-让前端最快的定位到生产问题

背景 在这越来越发达的网络时代,web应用也是越来越复杂,尤其是前端的开发,也是越来越受重视. 所以在我们前端开发完成后,会有一些列的web应用的上线验证,如自测.QA测试.code review 等,以确保 应用能在生产上没有事故. 但是事以愿违,很多时候我们都会接受的客户的一些线上问题,这些问题有时候可能你是自己开发的原因本身存 在的问题,这样的问题一般能够在测试环境重现,我们很快的能定位到问题关键位置.但是,很多时候有一些问题, 我们在测试中并未发现,可是在线上却有部分人出现了,问题确确实

Java日志系统---Logger之简单入门

Java 中自带的日志系统,今天抽空了解了一点,算是入了门,所以将自己的一些心得记录下来,以备日后查看,有兴趣的朋友,看到此文章,觉得有错误或需要添加的地方,请在下方评论留言,大家可以共同进步,谢谢:) Java中关于日志系统的API,在 java.util.logging 包中,在这个包中,Logger类很重要. Logger类是用来记录 某个级别的日志消息: 级别共分为以下几类,从上倒下,级别依次下降: SEVERE(严重)------级别最高 WARNING(警告) INFO CONFIG