标准物质网站建设,论文答辩ppt范例模板,重启wordpress,做电商能赚钱吗日志可以方便追踪和调试问题#xff0c;以前用log4net写日志#xff0c;换Java了改用log4j写日志#xff0c;用法和log4net差不多。
到apache包下载下载log4j的包#xff0c;解压后把下图两个jar包引入工程
先到网站根下加一个log4j2.xml的配置文件来配置日志的格式和参…日志可以方便追踪和调试问题以前用log4net写日志换Java了改用log4j写日志用法和log4net差不多。
到apache包下载下载log4j的包解压后把下图两个jar包引入工程
先到网站根下加一个log4j2.xml的配置文件来配置日志的格式和参数
?xml version1.0 encodingUTF-8?
Configuration statusERROR!--Configuration 配置项status:log4j本身的日志级别 “trace”, “debug”, “info”, “warn”, “error” and “fatal”monitorInterval每隔多少秒从新读取配置文件可以在不重启的情况下修改配置--Appenders!--Appenders定义日志输出有Console、File、RollingRandomAccessFile、MongoDB、Flume 等有Console:输出源到控制台File:将日志输出到文件通过fileName指定存储到的文件目录不存在会自动创建RollingRandomAccessFile:也是写入文件但可以定义规则按照文件大小或时间等重新创建一个新的日志文件存储如果是按时间分割需要配合filePattern使用--Console nameConsole targetSYSTEM_OUTPatternLayout pattern%d{HH:mm:ss.SSS} [%t] %-5level %F %logger{36} - %msg%n/!--PatternLayout指定输出日志的格式 --/ConsoleFile nameExceptionRollingLogFileAppender fileName./Logs/异常日志.txt appendtruePatternLayout pattern%date [%thread] %-5level %15logger %appdomain %location -- %message %exception %newline//FileFile nameDebugRollingLogFileAppender fileName./Logs/调试日志.txt appendtruePatternLayout pattern%date [%thread] %-5level %15logger %appdomain %location -- %message %exception %newline//FileFile nameOperationRollingLogFileAppender fileName./Logs/方法日志.txt appendtruePatternLayout pattern%date [%thread] %-5level %15logger %appdomain %location -- %message %exception %newline//FileFile nameSqlRollingLogFileAppender fileName./Logs/Sql语句日志.txt appendtruePatternLayout pattern%date [%thread] %-5level %15logger %appdomain %location -- %message %exception %newline//FileFile nameCapabilityRollingLogFileAppender fileName./Logs/性能.txt appendtruePatternLayout pattern%date [%thread] %-5level %15logger %appdomain %location -- %message %exception %newline//FileFile nameSecurityRollingLogFileAppender fileName./Logs/安全.txt appendtruePatternLayout pattern%date [%thread] %-5level %15logger %appdomain %location -- %message %exception %newline//FileRollingFile namecustomscript fileName${LOG_HOME}${FILE_NAME} filePattern${LOG_HOME}${FILE_NAME}.%d{yyyy-MM-dd}.logPatternLayout pattern%d{HH:mm:ss.SSS} %-5level %class{36} %M %L - %msg%xEx%n/PoliciesTimeBasedTriggeringPolicy //Policies/RollingFile/AppendersLoggers!--日志器通过LogManager.getLogger(日志器name)的日志器名字决定使用具体哪个日志器分为根Root日志器和自定义日志器--Root levelERROR!--当根据名字找不到对应的日志器时使用Root的日志器leve:日志输出等级默认ERRORTRACE DEBUG INFO WARN ERROR, ALL or OFF--AppenderRef refConsole/!--AppenderRef:关联Appenders中定义的输出规则可以有多个日志可以同时输出到多个地方--AppenderRef refdebuglog//RootLogger nameException levelALL additivityfalse!--Logger自定义日志器:name为日志器的名字通过LogManager.getLogger(日志器name)获得该日志器连接additivity:相加性。默认为true若为true会将当前日志内容也打印到它上面的日志器内这里上面日志器是Root--AppenderRef refExceptionRollingLogFileAppender//LoggerLogger nameOperation levelALL additivityfalse!--Logger自定义日志器:name为日志器的名字通过LogManager.getLogger(日志器name)获得该日志器连接additivity:相加性。默认为true若为true会将当前日志内容也打印到它上面的日志器内这里上面日志器是Root--AppenderRef refOperationRollingLogFileAppender//LoggerLogger nameDebug levelALL additivityfalse!--Logger自定义日志器:name为日志器的名字通过LogManager.getLogger(日志器name)获得该日志器连接additivity:相加性。默认为true若为true会将当前日志内容也打印到它上面的日志器内这里上面日志器是Root--AppenderRef refDebugRollingLogFileAppender//LoggerLogger nameSqlLog levelALL additivityfalse!--Logger自定义日志器:name为日志器的名字通过LogManager.getLogger(日志器name)获得该日志器连接additivity:相加性。默认为true若为true会将当前日志内容也打印到它上面的日志器内这里上面日志器是Root--AppenderRef refSqlRollingLogFileAppender//LoggerLogger nameCapability levelALL additivityfalse!--Logger自定义日志器:name为日志器的名字通过LogManager.getLogger(日志器name)获得该日志器连接additivity:相加性。默认为true若为true会将当前日志内容也打印到它上面的日志器内这里上面日志器是Root--AppenderRef refCapabilityRollingLogFileAppender//LoggerLogger nameSecurity levelALL additivityfalse!--Logger自定义日志器:name为日志器的名字通过LogManager.getLogger(日志器name)获得该日志器连接additivity:相加性。默认为true若为true会将当前日志内容也打印到它上面的日志器内这里上面日志器是Root--AppenderRef refSecurityRollingLogFileAppender//Logger/Loggers
/Configuration然后实现日志工具类
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);/// summary/// 书写调试日志/// /summary/// param namemessage日志内容/parampublic static void WriteDebugLog(String message){loggerDebug.debug(message);}/// summary/// 书写异常日志/// /summary/// /// param namemessage日志内容/param/// param nameexception异常对象/parampublic static void WriteExceptionLog(String message, Exception exception){loggerException.error(message, exception);}/// summary/// 书写性能日志/// /summary/// param namemessage日志内容/parampublic static void WriteCapabilityLog(String message){loggerCapability.info(message);}/// summary/// 书写安全日志/// /summary/// param namemessage日志内容/parampublic static void WriteSecurityLog(String message){loggerSecurity.info(message);}/// summary/// 书写操作日志/// /summary/// param namemessage日志内容/parampublic static void WriteOperationLog(String message){loggerOperation.info(message);}/// summary/// 书写调试日志/// /summary/// param namemessage日志内容/parampublic static void WriteSqlLog(String message){loggerSqlLog.debug(message);}
}
调用写日志测试 在Tomcat的Bin下的Logs生成日志 后面就把System.out.println的打印日志换为LIS.Core.Util.LogUtils写日志了