配置好自己的jdk和maven环境变量略过
1.在命令行输入mvn archetype:create -DgroupId=com.dean -DartifactId=Lo4jDemo
2.生成maven工程后:
①进入Log4jDemo,编辑pom.xml文件,加入dependency
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.9</version>
</dependency>
②进入到和Log4jDemo/src/main目录下创建resources目录,并在resources目录下创建log4j.properties文件
#定义INFO优先级,R为日志输出目的的
log4j.rootLogger=INFO, R
#设置日志输出类型,为文件类型
log4j.appender.R=org.apache.log4j.FileAppender
#设置日志文件名my.log
log4j.appender.R.file=my.log
#每次在文件尾写入新的日志信息
log4j.appender.R.Append=true
#日志输出信息格式类型
log4j.appender.R.layout=org.apache.log4j.PatternLayout
#日志输出信息格式为 换行、换行、日期、优先级、[类名]、日志信息、换行
log4j.appender.R.layout.ConversionPattern=%n%n%d%p[%c]-%m%n
③在App.java类中加入如下代码
package com.dean;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
public class App
{
public static void main(String[] args){
log();
}
public static boolean log(){
PropertyConfigurator.configure(ClassLoader.getSystemResource("log4j.properties"));
Logger log= Logger.getLogger(App.class);
log.info("大功告成,我的log写进my.log文件了!");
System.out.println("log文件写入完毕了!");
return true;
}
}
进入Lo4jDemo/src/test/java/com/dean目录下修改AppTest.java
在该类中增加一个testLog方法
public void testLog(){
App app = new App();
assertTrue(app.log());
}
在进入到Lo4jDemo工程下使用mvn clean install 命令
当单元测试被执行到后会出现:
T E S T S
-------------------------------------------------------
Running com.dean.AppTest
log文件写入完毕了!
root@dean-ThinkPad-SL410:/usr/local/project/Lo4jDemo# ls
my.log pom.xml src target
发现当前目录下多了一个my.log文件
root@dean-ThinkPad-SL410:/usr/local/project/Lo4jDemo# cat my.log
2015-01-02 18:44:53,631INFO[com.dean.App]-大功告成,我的log写进my.log文件了!
一点小问题,刚才java -jar XX.jar发现报错少了主目录清单(manitest
网上搜了下原来要生成可执行的jar文件需要在pom.xml中引入
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<appendAssemblyId>false</appendAssemblyId>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>com.dean.App</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>assembly</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
保存后,在mvn clean install就生成了可执行的jar文件
刚才进入target目录用java -jar Lo4jDemo-1.0-SNAPSHOT.jar 发现屏幕上打出了
log文件写入完毕了!
并且在target 目录下生成了my.log文件