• Java用log4j写日志


    日志可以方便追踪和调试问题,以前用log4net写日志,换Java了改用log4j写日志,用法和log4net差不多。

    apache包下载下载log4j的包,解压后把下图两个jar包引入工程
    在这里插入图片描述

    先到网站根下加一个log4j2.xml的配置文件来配置日志的格式和参数
    在这里插入图片描述

    
    <Configuration status="ERROR">
      
      <Appenders>
        
        <Console name="Console" target="SYSTEM_OUT">
          <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %F %logger{36} - %msg%n"/>
          
        Console>
        <File name="ExceptionRollingLogFileAppender" fileName="./Logs/异常日志.txt" append="true">
          <PatternLayout pattern="%date [%thread] %-5level %15logger %appdomain %location -- %message %exception %newline"/>
        File>
        <File name="DebugRollingLogFileAppender" fileName="./Logs/调试日志.txt" append="true">
          <PatternLayout pattern="%date [%thread] %-5level %15logger %appdomain %location -- %message %exception %newline"/>
        File>
        <File name="OperationRollingLogFileAppender" fileName="./Logs/方法日志.txt" append="true">
          <PatternLayout pattern="%date [%thread] %-5level %15logger %appdomain %location -- %message %exception %newline"/>
        File>
        <File name="SqlRollingLogFileAppender" fileName="./Logs/Sql语句日志.txt" append="true">
          <PatternLayout pattern="%date [%thread] %-5level %15logger %appdomain %location -- %message %exception %newline"/>
        File>
        <File name="CapabilityRollingLogFileAppender" fileName="./Logs/性能.txt" append="true">
          <PatternLayout pattern="%date [%thread] %-5level %15logger %appdomain %location -- %message %exception %newline"/>
        File>
        <File name="SecurityRollingLogFileAppender" fileName="./Logs/安全.txt" append="true">
          <PatternLayout pattern="%date [%thread] %-5level %15logger %appdomain %location -- %message %exception %newline"/>
        File>
    
        <RollingFile name="customscript" fileName="${LOG_HOME}${FILE_NAME}" filePattern="${LOG_HOME}${FILE_NAME}.%d{yyyy-MM-dd}.log">
          <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %M %L - %msg%xEx%n"/>
          <Policies>
            <TimeBasedTriggeringPolicy />
          Policies>
        RollingFile>
      Appenders>
      <Loggers>
        
        <Root level="ERROR">
          
          <AppenderRef ref="Console"/>
          
          <AppenderRef ref="debuglog"/>
        Root>
        <Logger name="Exception" level="ALL" additivity="false">
          
          <AppenderRef ref="ExceptionRollingLogFileAppender"/>
        Logger>
    
        <Logger name="Operation" level="ALL" additivity="false">
          
          <AppenderRef ref="OperationRollingLogFileAppender"/>
        Logger>
    
        <Logger name="Debug" level="ALL" additivity="false">
          
          <AppenderRef ref="DebugRollingLogFileAppender"/>
        Logger>
    
        <Logger name="SqlLog" level="ALL" additivity="false">
          
          <AppenderRef ref="SqlRollingLogFileAppender"/>
        Logger>
    
        <Logger name="Capability" level="ALL" additivity="false">
          
          <AppenderRef ref="CapabilityRollingLogFileAppender"/>
        Logger>
    
        <Logger name="Security" level="ALL" additivity="false">
          
          <AppenderRef ref="SecurityRollingLogFileAppender"/>
        Logger>
    
      Loggers>
    Configuration>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95

    然后实现日志工具类

    package LIS.Core.Util;
    import org.apache.logging.log4j.LogManager;
    import org.apache.logging.log4j.Logger;
    
    public class LogUtils {
        //得到日志操作,默认写在Tomcat的Bin下
        //异常日志
        static final Logger loggerException = LogManager.getLogger("Exception");
    
        //操作日志
        static final Logger loggerOperation = LogManager.getLogger("Operation");
    
        //调试日志
        static final Logger loggerDebug = LogManager.getLogger("Debug");
    
        //sql日志
        static final Logger loggerSqlLog = LogManager.getLogger("SqlLog");
    
        //性能日志
        static final Logger loggerCapability = LogManager.getLogger("Capability");
    
        //安全日志
        static final Logger loggerSecurity = LogManager.getLogger("Security");
    
    
        /// 
        /// 书写调试日志
        /// 
        /// 日志内容
        public static void WriteDebugLog(String message)
        {
            loggerDebug.debug(message);
        }
    
        /// 
        /// 书写异常日志
        /// 
        /// /// 日志内容
        /// 异常对象
        public static void WriteExceptionLog(String message, Exception exception)
        {
            loggerException.error(message, exception);
        }
    
        /// 
        /// 书写性能日志
        /// 
        /// 日志内容
        public static void WriteCapabilityLog(String message)
        {
            loggerCapability.info(message);
        }
    
        /// 
        /// 书写安全日志
        /// 
        /// 日志内容
        public static void WriteSecurityLog(String message)
        {
            loggerSecurity.info(message);
        }
    
        /// 
        /// 书写操作日志
        /// 
        /// 日志内容
        public static void WriteOperationLog(String message)
        {
            loggerOperation.info(message);
        }
    
    
        /// 
        /// 书写调试日志
        /// 
        /// 日志内容
        public static void WriteSqlLog(String message)
        {
            loggerSqlLog.debug(message);
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82

    调用写日志测试
    在这里插入图片描述

    在这里插入图片描述

    在Tomcat的Bin下的Logs生成日志
    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    后面就把System.out.println的打印日志换为LIS.Core.Util.LogUtils写日志了

  • 相关阅读:
    spring 5.2+ http返回结果json格式字符集丢失问题
    FreeRTOS 基于 ARMv8-M 对 MPU 的应用
    科普向丨语音芯片烧录工艺的要求
    中山市 香山杯2023 Misc pintu
    【Linux command 05】seq Command on Linux
    【Unity】万人同屏, 从入门到放弃之——多线程RVO避障
    72. 编辑距离
    Pandas 百分比数据排序(自然排序natsort)
    [附源码]java毕业设计校园新闻管理系统
    Python使用Mechanize库完成自动化爬虫程序
  • 原文地址:https://blog.csdn.net/zhanglianzhu_91/article/details/134233774