• log4j


    log4j1.2相关资料:

    如何做配置文件,

    1、Log4j1.2配置详解,我是链接

    2、apache官网

    3、如何在springboot项目中指定log4j.properties路径

    将log4j.properties文件放在工程src/main/resources目录下

    4、老旧项目(使用了log4j)中同一替换成sl4j来管理日志(代码里是log4j就用桥接(把老的Logger类替换掉,让classload加载一份新的Logger),代码里是slf4j就用适配器)

    写log4j就能在外面用slf4j调到依赖里面了:重写的log4j的方法实现部分(在Category类)瓤子被全部换成委托给slf4j了

    • slf4j-log4j12:与log4j联合使用,用于使当前项目的log4j实现slf标准
    • log4j-slf4j-impl:与log4j2联合使用,用于使当前项目的log4j实现slf标准
    • log4j-over-slf4j:与剔除log4j联合使用,替换log4j,使log4j实现slf。用于让单独用log4j的依赖能遵循slf,进而统一日志配置。
    • log4j-to-slf4j:与剔除log4j2联合使用,替换log4j2,使log4j2实现slf。用于让单独用log4j2的依赖能遵循slf,进而统一日志配置。

    引用出处:

    https://www.bilibili.com/video/av76910319

    https://github.com/sunwu51/notebook/blob/master/19.11/log_java%E6%97%A5%E5%BF%97%E6%A1%86%E6%9E%B6.md

    https://www.bilibili.com/video/av76723781

    5、log4j2使用指南

    6、log4j的源码学习

    我是uml图例的参考文章

    同时照着博主的日志把uml的标记学习一下:

         实现 是一种类与接口的关系,表示类是接口所有特征和行为的实现.

    public class Category implements ULogger, AppenderAttachable

              继承 (按照我找到的参考文章,Appender这里应该使用虚线,源码分析的老师可能没注意),关于Layout的标识是正确的

    public abstract class AppenderSkeleton extends ComponentBase implements Appender, OptionHandler//所以这里应该是实现的关系
    public class HTMLLayout extends Layout //继承关系

           聚合 是整体与部分的关系,且部分可以离开整体而单独存在。如车和轮胎是整体和部分的关系,轮胎离开车仍然可以存在。

      /**
         Call the <code>doAppend</code> method on all attached appenders.  */
      public int appendLoopOnAppenders(LoggingEvent event) {
        int size = 0;
        Appender appender;
    
        if (appenderList != null) {
          size = appenderList.size();
    
          for (int i = 0; i < size; i++) {
            appender = (Appender) appenderList.elementAt(i);
            appender.doAppend(event);
          }
        }
    
        return size;
      }

                             组合

    "【组合关系】:是整体与部分的关系,但部分不能离开整体而单独存在。如公司和部门是整体和部分的关系,没有公司就不存在部门。"

    /**
     * Abstract superclass of the other appenders in the package. This class
     * provides the code for common functionality, such as support for threshold
     * filtering and support for general filters.
     *
     * @author Ceki G&uuml;lc&uuml;
     *
     * @since 0.8.1
     */
    public abstract class AppenderSkeleton extends ComponentBase implements Appender, OptionHandler {
      
      /**
       * The layout variable does not need to be set if the appender
       * implementation has its own layout.
       */
      protected Layout layout;

                  依赖 依赖关系:是一种使用的关系,即一个类的实现需要另一个类的协助,所以要尽量不使用双向的互相依赖.

    public class LogManager {
    
      /**
       * @deprecated This variable is for internal use only. It will
       * become package protected in future versions.
       * */
      static public final String DEFAULT_CONFIGURATION_FILE = "log4j.properties";
      
      /**
       * @deprecated This variable is for internal use only. It will
       * become package protected in future versions.
       * */
      static final String DEFAULT_XML_CONFIGURATION_FILE = "log4j.xml";  
  • 相关阅读:
    苹果是如何做到快速发货的?
    亚马逊危险了!面临创业公司和科技巨头的颠覆
    We are writing to let you know we have removed your selling privileges
    亚马逊获20亿美元信用额度:有助新业务投资
    亚马逊与美国邮政合作试营快递生鲜服务
    2013下半年(11月)信息系统项目管理师考试题型分析(综合知识、案例分析、论文)
    SQL Server Profiler参数说明
    SQL2005查询所有表的大小
    SQL中EXISTS的用法和效率
    在线生成APK
  • 原文地址:https://www.cnblogs.com/zhucezmf/p/11149537.html
Copyright © 2020-2023  润新知