首先,需要在项目中导入log4j使用的JAR包,导入结果如下图:
菜单:Build Path->Configure Build Path->Add Extern Jars
导入JAR包后,在SRC级别下创建log4j.properties配置文件,配置方法如下:
### 设置### log4j.rootLogger = debug,stdout,D,E ### 输出信息到控制台### log4j.appender.stdout = org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target = System.out log4j.appender.stdout.layout = org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n ### 输出DEBUG 级别以上的日志文件设置 ### log4j.appender.D = org.apache.log4j.DailyRollingFileAppender log4j.appender.D.File = vincent_player_debug.log log4j.appender.D.Append = true log4j.appender.D.Threshold = DEBUG log4j.appender.D.layout = org.apache.log4j.PatternLayout log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n ### 输出ERROR 级别以上的日志文件设置 ### log4j.appender.E = org.apache.log4j.DailyRollingFileAppender log4j.appender.E.File = vincent_player_error.log log4j.appender.E.Append = true log4j.appender.E.Threshold = ERROR log4j.appender.E.layout = org.apache.log4j.PatternLayout log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
如果日志文件没有设置路径的话,那么日志文件会输出到工程目录下。
log4j支持两种类型的配置文件,xml和properties
log4j.properties配置文件如下:(需要把log4j的配置文件放在classpath下)
log4j.rootLogger = [level], appenderName, appenderName, ... (level是错误级别,appenderName是输出目的地,可以定义多个)
level优先级分别为FATAL、ERROR、WARN、INFO、DEBUG 5个级别.通过定义的级别,你可以控制程序中的日志输出.比如在这里定义了ERROR级别,程序中只有FARAL、ERROR 级别的LOG会被输出.
log4j.appender.appenderName = 输出目的地(这里的appenderName是在前面定义的,可任意起名)
log4j.appender.appenderName.layout = 布局类型 (设置布局类型)
Log4j提供的layout有以下
4
种
org.apache.log4j.HTMLLayout(以HTML表格形式布局)
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
org.apache.log4j.PatternLayout(可以灵活地指定布局模式)
如果使用PatternLayout布局就要指定的打印信息的具体格式ConversionPattern
测试代码如下:
import org.apache.log4j.*; public class vincent_player_framt { private static Logger logger = Logger.getLogger(vincent_player_framt.class); public static void main(String[] args) throws Exception { // 记录debug级别的信息 logger.debug("This is debug message."); // 记录info级别的信息 logger.info("This is info message."); // 记录error级别的信息 logger.error("This is error message."); } }
首先,创建logger,然后可以调用debug、info、error函数来输出信息到日志文件。error函数信息只会输出到error的log文件下面。