zoukankan      html  css  js  c++  java
  • java项目日志系统的总结


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

    常用的日志框架: 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实现



    ### 使用例子
  • 相关阅读:
    oracle 17068
    Nginx
    B/S端开发工具DevExtreme Angular控件
    UI组件库Kendo UI for Angular入门指南教程
    DevExpress WinForms v21.1
    WPF应用界面开发入门教程
    界面控件Telerik UI for WinForm初级教程
    十六、内联style.html
    十五、css样式class的多种用法
    十四、系统修饰键
  • 原文地址:https://www.cnblogs.com/henuzyy/p/10127190.html
Copyright © 2011-2022 走看看