我是一个新手,刚接触log4j,现在做一个项目,不是web的,也就没有WEBROOT、WEB-INF了,不知道这个log4j.properties文件该放在哪个目录下,PropertyConfigurator.configureAndWatch("log4j.properties"); 这个括号中是该写什么路径,是写相对路径好还是绝对路径好,log4j.rootLogger=INFO,A1,A4
#A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%t] %37c %3x - %m%n
#A4
log4j.appender.A4=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A4.file=./log/day.log
log4j.appender.A4.DatePattern='.'yyyy-MM-dd
log4j.appender.A4.layout=org.apache.log4j.PatternLayout
log4j.appender.A4.layout.ConversionPattern=[%-5r][%t][%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l %m%n
#log4j.appender.A4.layout.ConversionPattern=%m%n这个log4j.appender.A4.file=./log/day.log也不知道写的对不对,请指教了,谢谢
#A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%t] %37c %3x - %m%n
#A4
log4j.appender.A4=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A4.file=./log/day.log
log4j.appender.A4.DatePattern='.'yyyy-MM-dd
log4j.appender.A4.layout=org.apache.log4j.PatternLayout
log4j.appender.A4.layout.ConversionPattern=[%-5r][%t][%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l %m%n
#log4j.appender.A4.layout.ConversionPattern=%m%n这个log4j.appender.A4.file=./log/day.log也不知道写的对不对,请指教了,谢谢
用相对路径好。
PropertyConfigurator.configureAndWatch("log4j.properties"); 我觉得应该用相对路径吧,绝对路径在不同的部署情况下不可靠,相对路径比较可靠。
log4j.appender.A4.file=./log/day.log,这个不太清楚,但是感觉怪怪的。
# log4j.properties
log4j.rootLogger=INFO,RC,RC1log4j.appender.RC=org.apache.log4j.ConsoleAppender
log4j.appender.RC.Threshold=WARN
log4j.appender.RC.layout=org.apache.log4j.PatternLayout
log4j.appender.RC.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss,SSS} %-5p \:%m;%nlog4j.appender.RC1=org.apache.log4j.FileAppender
log4j.appender.RC1.Threshold=info
log4j.appender.RC1.File=./123.properties
log4j.appender.RC1.layout=org.apache.log4j.PatternLayout
log4j.appender.RC1.layout.ConversionPattern=%d{yyyy-MM-dd} %-5p \:%m;%n
这样我的两个appender都起作用了。一个输出到控制台, 一个输出到当前项目目录的根目录下面叫做123.log.
我在类中是这样用logger的:import org.apache.log4j.Logger;public class Test {
public static Logger logger = Logger.getLogger(Test.class);
public static void main(String[] args) {
logger.info("This is a info");
logger.debug("This is a debug");
logger.warn("This is a warn");
logger.error("This is a error");
}
}
import com.foo.Bar;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
public class MyApp {
static Logger logger = Logger.getLogger(MyApp.class.getName());
public static void main(String[] args) {
// BasicConfigurator replaced with PropertyConfigurator.
PropertyConfigurator.configure(args[0]);
logger.info("Entering application.");
Bar bar = new Bar();
bar.doIt();
logger.info("Exiting application.");
}
}
log4j.properties放在classpath下面就可以了。如果你熟悉java命令并且理解classpath的话。
希望对你有帮助。