java怎么写日志

1. java日志 首先,在项目中的classes 中新建立一个log4j.properties文件即可;在实际编程时,要使Log4j真正在系统中运行事先还要对配置文件进行定义 。
定义步骤就是对Logger、Appender及Layout的分别使用 。Log4j支持两种配置文件格式,一种是XML格式的文件,一种是java properties(key=value)【Java特性文件(键=值)】 。
(这里只说明properties文件)1、配置根Logger 其语法为: log4j.rootLogger = [ level ] , appenderName1, appenderName2,… level : 是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别 。Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG 。
通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关 。比如在这里定义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来 。
appenderName:就是指定日志信息输出到哪个地方 。您可以同时指定多个输出目的地 。
例如:log4j.rootLogger=info,A1,B2,C3 2、配置日志信息输出目的地 其语法为: log4j.appender.appenderName = fully.qualified.name.of.appender.class // "fully.qualified.name.of.appender.class" 可以指定下面五个目的地中的一个: 1.org.apache.log4j.ConsoleAppender(控制台) 2.org.apache.log4j.FileAppender(文件) 3.org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件) 4.org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件) 5.org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方) 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:指定可以产生的滚动文件的最大数 。
3、配置日志信息的格式 其语法为: 1). log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class "fully.qualified.name.of.layout.class" 可以指定下面4个格式中的一个: 1.org.apache.log4j.HTMLLayout(以HTML表格形式布局),2.org.apache.log4j.PatternLayout(可以灵活地指定布局模式),3.org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),4.org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息) 1.HTMLLayout 选项 LocationInfo=true:默认值是false,输出java文件名称和行号 Title=my app file: 默认值是 Log4J Log Messages. 2.PatternLayout 选项 ConversionPattern=%m%n :指定怎样格式化指定的消息 。3.XMLLayout 选项 LocationInfo=true:默认值是false,输出java文件和行号 2). log4j.appender.A1.layout.ConversionPattern=%-4r %-5p %d{yyyy-MM-dd HH:mm:ssS} %c %m%n 这里需要说明的就是日志信息格式中几个符号所代表的含义: -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)的组合,包括类目名、发生的线程,以及在代码中的行数 。