自己写一份模板备用~
① 配置文件
######## Log4j配置 ########
# 指定日志输出的级别和地方,第一个参数是级别
# 往后可以接多个参数,参数名自定义,下面要用到的,相当于声明变量~
log4j.rootLogger = debug,console,file,rollingFile,dailyFile,logDB
# 自定义 logger 实现控制日志输出,前缀 log4j.logger,后面加上类的全路径,等于号后边写级别和参数(同上,不写继承 root的)
# log4j.logger.com.xxx = error,xxx
#------ 输出到控制台 ------#
log4j.appender.console = org.apache.log4j.ConsoleAppender
# 指定输出格式,这里使用 PatternLayout 是自定义格式
log4j.appender.console.layout = org.apache.log4j.PatternLayout
#---- 指定消息内容的格式
# %p: 输出日志级别
# %d: 输出日期
# %l: 输出类名,线程以及在代码中的位置
# %m: 输出代码中指定的消息,产生的日志具体信息
# %n: 输出一个回车换行符
log4j.appender.console.layout.ConversionPattern=[%p] [%d{yyyy-MM-dd HH:mm:ss}] %l ==> %m%n
#------ 输出到文件 ------#
log4j.appender.file = org.apache.log4j.FileAppender
log4j.appender.file.layout = org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=[%p] [%d{yyyy-MM-dd HH:mm:ss}] %l ==> %m%n
# 指定日志文件保存的路径
log4j.appender.file.file = d:/myLog/debug.log
# 指定字符集
log4j.appender.file.encoding = utf-8
#------ 按大小自动拆分的文件 ------#
log4j.appender.rollingFile = org.apache.log4j.RollingFileAppender
log4j.appender.rollingFile.layout = org.apache.log4j.PatternLayout
log4j.appender.rollingFile.layout.ConversionPattern=[%p] [%d{yyyy-MM-dd HH:mm:ss}] %l ==> %m%n
# 指定日志文件保存的路径
log4j.appender.rollingFile.file = d:/myLog/rolling.log
# 指定字符集
log4j.appender.rollingFile.encoding = utf-8
# 指定单个日志文件最大的大小
log4j.appender.rollingFile.maxFileSize = 1MB
# 指定日志文件的最大个数,超过这个个数,最旧的日志文件将被覆盖
log4j.appender.rollingFile.maxBackupIndex = 10
#------ 按时间自动拆分的文件 ------#
log4j.appender.dailyFile = org.apache.log4j.DailyRollingFileAppender
log4j.appender.dailyFile.layout = org.apache.log4j.PatternLayout
log4j.appender.dailyFile.layout.ConversionPattern=[%p] [%d{yyyy-MM-dd HH:mm:ss}] %l ==> %m%n
# 指定日志文件保存的路径
log4j.appender.dailyFile.file = d:/myLog/daily.log
# 指定字符集
log4j.appender.dailyFile.encoding = utf-8
# 指定日志拆分的规则,注意前面的点要用单引号,后面的时间要使用单杆-,如下写为每天生成一个
log4j.appender.dailyFile.datePattern = '.'yyyy-MM-dd
#------ 将日志文件写入到数据库 ------#
log4j.appender.logDB = org.apache.log4j.jdbc.JDBCAppender
log4j.appender.logDB.layout = org.apache.log4j.PatternLayout
log4j.appender.logDB.Driver = com.mysql.jdbc.Driver
log4j.appender.logDB.URL = jdbc:mysql://xxx/xxx
log4j.appender.logDB.User = xxx
log4j.appender.logDB.password = xxx
log4j.appender.logDB.Sql = insert into t_log(log_project,log_level,create_date,log_category,log_line,log_message,log_file) values('IceClean','%p','%d{yyyy-MM-dd HH:mm:ss}','%l','%L','%m','%F')
② Appenders 日志输出地方
- ConsoleAppender:输出到控制台
- FileAppender:输出到文件
- DailrRolingFileAppender:输出到文件,并且每天一个新文件
- RollingFileAppender:输出到文件,并指定文件的尺寸,当文件大小达到尺寸时,自动将文件改名同时产生一个新的文件
- JDBCAppender:输出到数据库
③ Layout 输出格式
%c
:输出日志信息所属的类的全名%d
:输出日志时间点的日期或时间,如:%d{yyy-MM-dd HH:mm:ss }%f
:输出日志信息所属的类的类名%l
:输出日志事件的发生位置,即输出日志信息的语句处于它所在的类的第几行%m
:输出代码中指定的信息%n
:输出一个回车换行符,Windows平台为“\r\n”,Unix平台为“\n”%p
:输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL%r
:输出自应用启动到输出该日志信息所耗费的毫秒数%t
:输出产生该日志事件的线程名
动静分离,动静结合,以静为动(IceClean)