log日志配置

       Log4j有两种配置方式: 一种是xml格式,一种是properties格式。都是放置到classpath下面。

默认名称分别是:log4j.xml和log4j.properties

一、 配置:

1、log4j.rootLogger  =   [ level ]   ,  appenderName1 ,  appenderName2 ,  …

其中 [ level ]日志输出级别共有五级:

FATAL         0  
ERROR      3  
WARN         4  
INFO            6  
DEBUG       7 

输出级别的种类  
Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG

ERROR   为严重错误 主要是程序的错误
WARN      为一般警告,比如session丢失
INFO         为一般要显示的信息,比如登录登出
DEBUG    为程序的调试信息

OFF 、FATAL 、ERROR、WARN、INFO、DEBUG、TRACE 、ALL  
 OFF         为最高等级 关闭了日志信息  
 FATAL     为可能导致应用中止的严重事件错误  
 ERROR  为严重错误 主要是程序的错误  
 WARN     为一般警告,比如session丢失  
 INFO       为一般要显示的信息,比如登录登出  
 DEBUG   为程序的调试信息  
 TRACE    为比DEBUG更细粒度的事件信息  
 ALL          为最低等级,将打开所有级别的日志  

2、输出目的地  Appender
org.apache.log4j.ConsoleAppender(控制台)   
org.apache.log4j.FileAppender(文件)   
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)   
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)   
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)   
org.apache.log4j.jdbc.JDBCAppender(把日志用JDBC记录到数据库中)  

 1).ConsoleAppender选项 
      Threshold=WARN:指定日志消息的输出最低层次。 
      ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。 
      Target=System.err:默认情况下是:System.out,指定输出控制台 
 2).FileAppender 选项 
      Threshold=WARN:指定日志消息的输出最低层次。 
      ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。 
      File=mylog.txt:指定消息输出到mylog.txt文件。 
      Append=false:默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容。 
 3).DailyRollingFileAppender 选项 
      Threshold=WARN:指定日志消息的输出最低层次。 
      ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。 
      File=mylog.txt:指定消息输出到mylog.txt文件。 
      Append=false:默认值是true,即以追加的方式将消息增加到指定文件中,false指将消息覆盖指定的文件内容。 
      DatePattern=''.''yyyy-ww:每周滚动一次文件,即每周产生一个新的文件。当然也可以指定按月、周、天、时和分。即对应的格式如下: 
                    1)''.''yyyy-MM: 每月 
                    2)''.''yyyy-ww: 每周  
                    3)''.''yyyy-MM-dd: 每天 
                    4)''.''yyyy-MM-dd-a: 每天两次 
                    5)''.''yyyy-MM-dd-HH: 每小时 
                    6)''.''yyyy-MM-dd-HH-mm: 每分钟 
4).RollingFileAppender 选项 
      Threshold=WARN:        指定日志消息的输出最低层次。 
      ImmediateFlush=true:  默认值是true,意谓着所有的消息都会被立即输出。 
      File=mylog.txt:                指定消息输出到mylog.txt文件。 
      Append=false:                默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容。 
      MaxFileSize=100KB:     后缀可以是KB, MB 或者是 GB. 在日志文件到达该大小时,将会自动滚动,即将原来的内容移到mylog.log.1文件。 
      MaxBackupIndex=2:      指定可以产生的滚动文件的最大数。 

二、常见布局 Layout 
org.apache.log4j.HTMLLayout(以HTML表格形式布局), 
org.apache.log4j.PatternLayout(可以灵活地指定布局模式), 
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串), 
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

最常用的PatternLayout
日志信息格式中几个符号所代表的含义:  

 -X号: X信息输出时左对齐;  
 %p: 输出日志信息优先级,即DEBUG,INFO,WARN,ERROR,FATAL,  

 %d: 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,

比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921  

 %r: 输出自应用启动到输出该log信息耗费的毫秒数  
 %c: 输出日志信息所属的类目,通常就是所在类的全名  
 %t: 输出产生该日志事件的线程名  
 %l: 输出日志事件的发生位置,相当于%C.%M(%F:%L)的组合,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main (TestLog4.java:10)  
 %x: 输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中。  
 %%: 输出一个"%"字符  
 %F: 输出日志消息产生时所在的文件名称  
 %L: 输出代码中的行号  
 %m: 输出代码中指定的消息,产生的日志具体信息  
 %n: 输出一个回车换行符,Windows平台为"/r/n",Unix平台为"/n"输出日志信息换行
  
 可以在%与模式字符之间加上修饰符来控制其最小宽度、最大宽度、和文本的对齐方式。如:  
 1)%20c:指定输出category的名称,最小的宽度是20,如果category的名称小于20的话,默认的情况下右对齐。  
 2)%-20c:指定输出category的名称,最小的宽度是20,如果category的名称小于20的话,"-"号指定左对齐。  

 3)%.30c:指定输出category的名称,最大的宽度是30,如果category的名称大于30的话,就会将左边多出的字符截掉,但小于30的话也不会有空格。  

 4)%20.30c:如果category的名称小于20就补空格,并且右对齐,如果其名称长于30字符,就从左边较远输出的字符截掉。  


三、实例: log4j.properties

log4j.rootLogger=info,console,file,d

# to list
log4j.appender.console = org.apache.log4j.ConsoleAppender
log4j.appender.console.layout = org.apache.log4j.PatternLayout
log4j.appender.console.Target=System.out
log4j.appender.console.layout.ConversionPattern = [%-5p] %d %30c %m %n

# to file  
log4j.appender.file = org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.DatePattern = '_'yyyy-MM-dd'.log'
log4j.appender.file.File=d\:/LF/logs/launch.log
log4j.appender.file.Append = true
log4j.appender.file.Threshold = info
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=[%-5p] %d %30c %m %n

# to file  
log4j.appender.d = org.apache.log4j.DailyRollingFileAppender
log4j.appender.d.DatePattern = '_'yyyy-MM'.log'
log4j.appender.d.File=d\:/LF/logs/err/launchDb.log
log4j.appender.d.Append = true
log4j.appender.d.Threshold = ERROR
log4j.appender.d.layout=org.apache.log4j.PatternLayout
log4j.appender.d.layout.ConversionPattern=[%-5p] %d %30c %m %n


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Log4j是一个强大的Java日志框架,可以通过灵活的配置来控制日志的输出。下面是一个简单的Log4j配置示例: 1. 在项目中引入Log4j相关的jar包。可以在Maven中添加如下依赖: ```xml <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> ``` 2. 创建一个log4j.properties文件,并将其放在类路径下。示例配置如下: ```properties # 设置日志输出级别为DEBUG log4j.rootLogger=DEBUG, console # 控制台输出 log4j.appender.console=org.apache.log4j.ConsoleAppender log4j.appender.console.layout=org.apache.log4j.PatternLayout log4j.appender.console.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p %c{1}:%L - %m%n ``` 上面的示例配置中,`log4j.rootLogger`设置了日志输出级别为DEBUG,`log4j.appender.console`表示将日志输出到控制台,`log4j.appender.console.layout`表示使用PatternLayout来格式化输出的日志信息。 在PatternLayout中,`%d{yyyy-MM-dd HH:mm:ss}`表示输出日志的时间,`%t`表示输出日志的线程名,`%-5p`表示输出日志的级别,`%c{1}`表示输出日志的类名,`%L`表示输出日志的行号,`%m%n`表示输出日志的消息和换行符。 3. 在Java代码中使用Log4j输出日志。示例代码如下: ```java import org.apache.log4j.Logger; public class Log4jDemo { private static final Logger logger = Logger.getLogger(Log4jDemo.class); public static void main(String[] args) { logger.debug("Debug message"); logger.info("Info message"); logger.warn("Warn message"); logger.error("Error message"); logger.fatal("Fatal message"); } } ``` 在代码中,使用`Logger.getLogger`方法获取一个Logger对象,然后使用不同级别的方法输出日志信息。 4. 运行程序,就可以在控制台上看到输出的日志信息了。根据上面的示例配置,输出的日志信息将包含时间、线程名、级别、类名、行号和消息等信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值