log4j日志文件的作用:
日志文件是用于记录系统操作事件的记录文件或文件集合,可分为事件日志和消息日志。具有处理历史数据、诊断问题的追踪以及理解系统的活动等重要作用。
level是日志记录的优先级,分为OFF,TRACE,DEBUG,INFO,WARN,ERROR,FATAL,ALL
Log4j建议只使用四个级别,优先级从低到高分别是DEBUG,INFO,WARN,ERROR
1.配置根Logger,其语法为:
log4j.rootLogger = [ level ] , appenderName1 , appenderName2 , …
appenderName就是指定日志信息输出到哪个地方。可同时指定多个输出目的
2.配置日志信息输出目的地Appender(控制台):
log4j.rootLogger=DEBUGE, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
3.配置日志信息输出目的地文件:
log4j.rootLogger=DEBUGE, stdout
#针对哪个类进行日志记录
log4j.logger.edu.javaee.mybatis=DEBUG
log4j.appender.stdout=org.apache.log4j.FileAppender
log4j.appender.stdout.File= ./log/log.log
#log4j.appender.stdout.File = debug.html
#log4j.appender.stdout.File = debug.xml
log4j.appender.stdout.Append = true
#日志是否立刻输出
log4j.appender.stdout.ImmediateFlush = TRUE
log4j.appender.stdout.Threshold = DEBUG
log4j.appender.stdout.Encoding = UTF-8
#设置页面布局
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
#设置输出格式
log4j.appender.stdout.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
4.配置文件输出到文件按照内存大小,当内存达到一定的时候就开始新建一个日志文件:
log4j.rootLogger=DEBUGE, stdout
#针对哪个类进行日志记录
log4j.logger.edu.javaee.mybatis=DEBUG
log4j.appender.stdout = org.apache.log4j.RollingFileAppender
log4j.appender.stdout.Threshold = DEBUG
log4j.appender.stdout.File=./log/log.log
log4j.appender.stdout.Append = TRUE
#指定文件大小,可以是KB,MB,GB
log4j.appender.stdout.MaxFileSize = 2KB
#指定可以参生的滚动文件数
log4j.appender.stdout.MaxBackupIndex = 10
log4j.appender.stdout.Encoding = utf-8
#设置页面布局
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
#设置输出格式
log4j.appender.stdout.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
5.配置文件输出到文件按照日期进行新建日志文件:
log4j.rootLogger=DEBUGE, stdout
#针对哪个类进行日志记录
log4j.logger.edu.javaee.mybatis=DEBUG
log4j.appender.stdout = org.apache.log4j.DailyRollingFileAppender
log4j.appender.stdout.Threshold = DEBUG
log4j.appender.stdout.ImmediateFlush = TRUE
##文件是追加还是覆盖 默认true将消息追加到指定文件中 false的话是覆盖文件
log4j.appender.stdout.Append = TRUE
#指定输出文件测试的时候需要修改时间
log4j.appender.stdout.File= ./log/log.log
log4j.appender.stdout.DatePattern=yyyy-MM-dd-HH-mm'.log'
##滚动文件周期
##'.'yyyy-MM:每月
## '.'yyyy-ww:每周
## '.'yyyy-MM-dd:每天
## '.'yyyy-MM-dd-a:每天两次
## '.'yyyy-MM-dd-HH:每小时
## '.'yyyy-MM-dd-HH-mm:每分钟
log4j.appender.stdout.Encoding = UTF-8
#设置页面布局
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
#设置输出格式
log4j.appender.stdout.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
6.配置文件输出到数据库:
log4j.rootLogger=DEBUGE, database
log4j.appender.database = org.apache.log4j.jdbc.JDBCAppender
log4j.appender.database.layout = org.apache.log4j.PatternLayout
log4j.appender.database.driver = com.mysql.jdbc.Driver
log4j.appender.database.URL = jdbc:mysql://127.0.0.1:3306/db_log4j?useSSL=false
log4j.appender.database.user = root
log4j.appender.database.password = 123456
log4j.appender.database.Sql = INSERT INTO t_log4j (project_name,create_date,level,category,file_name,thread_name,line,all_category,message) values ("MyBatis","%d{yyyy-MM-ddHH:mm:ss}","%p","%c","%F","%t","%L","%l","%m")
7.设置输出的页面布局
#灵活的指定布局模式
#log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
#以HTML表格形式布局
#log4j.appender.stdout.layout=org.apache.log4j.HTMLLayout
#SimpleLayout包含日志信息的级别和信息字符串
#log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout
#TTCCLayout(包含日志产生的时间、线程、类别等等信息)
#log4j.appender.stdout.layout=org.apache.log4j.TTCCLayout
#XMLLayout(以XML形式布局)
#log4j.appender.stdout.layout=org.apache.log4j.xml.XMLLayout
8.设置日志的输出形式:
//输出格式1
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
//输出格式2
log4j.appender.stdout.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n