1.新建一个java project,在src下新建一个lib文件夹和 rescources 文件夹,resources文件夹不能命名错误。
点击File——》project Structure...打开根据下图操作
把相关jar包放进lib文件夹里并绑定。
新建一个java文件 Log4jTest.java 和 HadoopLog4j.java
package com.km.log4j;
import org.apache.log4j.DailyRollingFileAppender;
import org.apache.log4j.Logger;
import org.apache.log4j.PatternLayout;
/**
* Created by 166 on 2017/7/27.
*/
public class Log4jTest {
public static void main(String[] args) {
customLog4j(args[0]);
}
/**
* control configuration file
*/
private static void customLog4j(String num){
Logger logger = Logger.getLogger(Log4jTest.class);
for (int i=0;i<Integer.parseInt(num);i++){
try {
Thread.sleep(200);
logger.info("this is a test");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
新建一个
package com.km.log4j;
import org.apache.log4j.AppenderSkeleton;
import org.apache.log4j.spi.LoggingEvent;
/**
* Created by 166 on 2017/7/28.
*/
public class HadoopLog4j extends AppenderSkeleton{
private String context;
public String getContext() {
return context;
}
public void setContext(String context) {
this.context = context;
}
@Override
protected void append(LoggingEvent loggingEvent) {
System.out.println(String.format("hadoop log4j text ------------>%s",context));
}
@Override
public void close() {
}
@Override
public boolean requiresLayout() {
return false;
}
}
在resources文件夹下新建一个log4j.properties配置文件
#Set custom logger level to INFO and its only appender to hadoop.
#log4j.logger指定你按哪个包打日志
log4j.logger.com.km.log4j.Log4jTest=INFO,hadoop //log4j.logger.包名.类 = 日志等级,输出打印位置
log4j.appender.hadoop=com.km.log4j.HadoopLog4j //log4j.appender.打印输出位置=appender的实现类(常用DailyRollingFileAppender)
log4j.appender.hadoop.context=OK //context调用appender实现类的setContext,设置传入参数为OK
打开调试配置窗口,输入变量的值