今天学习了Log4j 简单的java工程,src下有两个文件:
HelloLog4j.java和HelloLog4j.properties HelloLog4j.java文件
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
public class HelloLog4j {
static Logger log = Logger.getLogger(HelloLog4j.class.getName());
public static void main(String[] args) {
HelloLog4j hl = new HelloLog4j();
String path = hl.test();
// PropertyConfigurator.configure(path+"HelloLog4j.properties" ) ;
// log.setLevel(Level.DEBUG);
//做个循环,设置日志文件大小及备份的时候使用
for(int i=0;i<3;i++){
log.info("hello log4j ");
}
}
public String test(){
String resource = this.getClass().getResource(".").getPath();
return resource;
}
}
HelloLog4j.properties文件
##设置级别INFO
##A1和 R设置输出目的地
log4j.rootLogger=INFO, A1 , R
##设置A1输出到控制台
log4j.appender.A1=org.apache.log4j.ConsoleAppender
##设置输出格式,%3x是一段空白,设置间隔的,也可以是5x 10x等等 log4j.appender.A1.layout=org.apache.log4j.PatternLayout log4j.appender.A1.layout.ConversionPattern=%-4r %-5p [%t] %5c %3x - %m%n
##设置日志为按照一定时间产生日志文件,输出到控制台同时输出到文件 log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
##设置产生日志的名称 log4j.appender.R.File=example.log
##设置为每天产生日志
##如果设置为每月产生日志则为:'.'yyyy-MM log4j.appender.R.DatePattern='.'yyyy-MM-dd
##日志的格式
log4j.appender.R.layout=org.apache.log4j.PatternLayout log4j.appender.R.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
##文件结束 ======================================================
也可以这样设置
##输出到控制台同时输出到文件,文件自动生成在工程根目录下
log4j.appender.R=org.apache.log4j.RollingFileAppender
##文件名称
log4j.appender.R.File=example.log
##文件大小
log4j.appender.R.MaxFileSize=1KB
##最多有多少备份文件,如文件写满会将以前的日志覆盖
log4j.appender.R.MaxBackupIndex=10
以下是copy过来地: 设置参数具体如下(记不住啊,用就查):
- 配置根Logger,其语法为:
log4j.rootLogger = [ level ] , appenderName, appenderName, …
其中,level 是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别。Log4j建议只使用四个级别,优 先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。比如在这里定 义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来。 appenderName就是指定日志信息输出到哪个地方。您可以同时指定多个输出目的地。 - 配置日志信息输出目的地Appender,其语法为 log4j.appender.appenderName1 = value1
… log4j.appender.appenderNamen = valueN
其中,Log4j提供的appender有以下几种: org.apache.log4j.ConsoleAppender(控制台), org.apache.log4j.FileAppender(文件), org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件), org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方) - 配置日志信息的格式(布局),其语法为:
log4j.appender.appenderName1.layout = value1 … log4j.appender.appenderNamen.layout = valueN
其中,Log4j提供的layout有以下几种: org.apache.log4j.HTMLLayout(以HTML表格形式布局), org.apache.log4j.PatternLayout(可以灵活地指定布局模式), org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串), org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
应用在程序中: 1、
使用Log4j,第一步就是获取日志记录器,这个记录器将负责控制日志信息。其语法为:
public static Logger getLogger( String name),
通过指定的名字获得记录器,如果必要的话,则为这个名字创建一个新的记录器。Name一般取本类的名字,比如:
static Logger logger = Logger.getLogger ( ServerWithLog4j.class.getName () ) ;
2、
当获得了日志记录器之后,第二步将配置Log4j环境,其语法为: BasicConfigurator.configure (): 自动快速地使用缺省Log4j环境。 PropertyConfigurator.configure ( String configFilename) :读取使用Java的特性文件编写的配置文件。 DOMConfigurator.configure ( String filename ) :读取XML形式的配置文件。
3、
当上两个必要步骤执行完毕,您就可以轻松地使用不同优先级别的日志记录语句插入到您想记录日志的任何地方,其语法如下:
Logger.debug ( Object message ) ; Logger.info ( Object message ) ; Logger.warn ( Object message ) ; Logger.error ( Object message ) ;
下面是webwork2+spring2+ibatis的log4j配置,log4j.properties文件放在src目录下即可。
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)