如何使用log4j使得两个类生成各自的log 假设有两个类,如何在log4j.properties中配置,使得两个类可以产生各自的log 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 配置2个org.apache.log4j.DailyRollingFileAppender 就行了<appender name="LOG_FILE" class="org.apache.log4j.DailyRollingFileAppender"> <param name="File" value="/logs/server.log"/> <param name="DatePattern" value="'.'yyyy-MM-dd"/> <param name="Append" value="true"/> <param name="encoding" value="UTF-8"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss SSS}] %p [%t] %c{1}.%M(%L) | %m%n"/> </layout> </appender> <appender name="LOG_FILE_LDAP" class="org.apache.log4j.DailyRollingFileAppender"> <param name="File" value="/logs/grp_ldap_err.log"/> <param name="DatePattern" value="'.'yyyy-MM-dd"/> <param name="Append" value="true"/> <param name="encoding" value="UTF-8"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss SSS}] %p [%t] %c{1}.%M(%L) | %m%n"/> </layout> </appender> 这个配在哪里? java程序里面还是另外写个xml? 这个配在哪里? java程序里面还是另外写个xml?xml的名字是什么?放在哪里 比方说,log4j.properties文件中这么配:log4j.rootCategory=INFO, rootlog4j.appender.root=org.apache.log4j.ConsoleAppenderlog4j.appender.root.layout=org.apache.log4j.PatternLayoutlog4j.appender.root.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%nlog4j.category.Class1=INFO, class1log4j.appender.class1=org.apache.log4j.FileAppenderlog4j.appender.class1.layout=org.apache.log4j.PatternLayoutlog4j.appender.class1.layout.ConversionPattern=%-22d{dd/MMM/yyyy HH:mm:ss} - %m%nlog4j.appender.class1.file=class1.loglog4j.category.Class2=INFO, class2log4j.appender.class2=org.apache.log4j.FileAppenderlog4j.appender.class2.layout=org.apache.log4j.PatternLayoutlog4j.appender.class2.layout.ConversionPattern=%-22d{dd/MMM/yyyy HH:mm:ss} - %m%nlog4j.appender.class2.file=class2.logJava程序中,程序Logger.getLogger("Class2").info( "Class2 logging.");就只写入到class2.log文件Logger.getLogger("Class1").info( "Class1 logging.");就只写入到class1.log文件 试了一下 出来报红Type mismatch: cannot convert from void to Logger package liang.log4jTest;import org.apache.log4j.Logger;public class Test1 { public static Logger log; public Test1(){} public static void main (String []args){ log.info("are you againok"); } static { log = Logger.getLogger("Class1").info( "Class1 logging."); } } 改成log = Logger.getLogger("Class1"); 但是出来以后的日志没有INFO这个标志了变成这样了2011-07-25 16:21:52,062 - are you againok2011-07-25 16:32:42,656 - are you againok 但是出来以后的日志没有INFO这个标志了变成这样了2011-07-25 16:21:52,062 - are you againok2011-07-25 16:32:42,656 - are you againok 想要INFO标志?将ConversionPattern=%-22d{dd/MMM/yyyy HH:mm:ss} - %m%n改成ConversionPattern=[%p] %-22d{dd/MMM/yyyy HH:mm:ss} - %m%n 就行了。 太感谢了怎么学习log4j有什么书或者资料推荐吗 正则,匹配两个字符串之间 java.io问题 请教达人: java中new int[0]是什么意思 求助:java.net.BindException异常 java深度复制问题 问个不怕你们笑话的问题,新手上路,送礼的帖子,请进来看看 对象的多态性和函数的重载是不是一回事? 如何让Jlabel垂直显示文字? 共享软件免费赠送(信息仓库个人版) 谁能提供QA及测试方法的文档资料之类的东西,分数一定给 eclipse出现BUG,建项目时给我建了个无限嵌套文件夹 java数据持久化的问题
<param name="File" value="/logs/server.log"/>
<param name="DatePattern" value="'.'yyyy-MM-dd"/>
<param name="Append" value="true"/>
<param name="encoding" value="UTF-8"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="[%d{yyyy-MM-dd HH:mm:ss SSS}] %p [%t] %c{1}.%M(%L) | %m%n"/>
</layout>
</appender>
<appender name="LOG_FILE_LDAP" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="/logs/grp_ldap_err.log"/>
<param name="DatePattern" value="'.'yyyy-MM-dd"/>
<param name="Append" value="true"/>
<param name="encoding" value="UTF-8"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="[%d{yyyy-MM-dd HH:mm:ss SSS}] %p [%t] %c{1}.%M(%L) | %m%n"/>
</layout>
</appender>
log4j.properties文件中这么配:log4j.rootCategory=INFO, root
log4j.appender.root=org.apache.log4j.ConsoleAppender
log4j.appender.root.layout=org.apache.log4j.PatternLayout
log4j.appender.root.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%nlog4j.category.Class1=INFO, class1
log4j.appender.class1=org.apache.log4j.FileAppender
log4j.appender.class1.layout=org.apache.log4j.PatternLayout
log4j.appender.class1.layout.ConversionPattern=%-22d{dd/MMM/yyyy HH:mm:ss} - %m%n
log4j.appender.class1.file=class1.loglog4j.category.Class2=INFO, class2
log4j.appender.class2=org.apache.log4j.FileAppender
log4j.appender.class2.layout=org.apache.log4j.PatternLayout
log4j.appender.class2.layout.ConversionPattern=%-22d{dd/MMM/yyyy HH:mm:ss} - %m%n
log4j.appender.class2.file=class2.logJava程序中,程序
Logger.getLogger("Class2").info( "Class2 logging.");
就只写入到class2.log文件
Logger.getLogger("Class1").info( "Class1 logging.");
就只写入到class1.log文件
报红
Type mismatch: cannot convert from void to Logger
public Test1(){}
public static void main (String []args){
log.info("are you againok");
}
static {
log = Logger.getLogger("Class1").info( "Class1 logging.");
}
}
log = Logger.getLogger("Class1");
没有
INFO这个标志了
变成这样了
2011-07-25 16:21:52,062 - are you againok
2011-07-25 16:32:42,656 - are you againok
没有
INFO这个标志了
变成这样了
2011-07-25 16:21:52,062 - are you againok
2011-07-25 16:32:42,656 - are you againok
将
ConversionPattern=%-22d{dd/MMM/yyyy HH:mm:ss} - %m%n
改成
ConversionPattern=[%p] %-22d{dd/MMM/yyyy HH:mm:ss} - %m%n
就行了。
怎么学习log4j
有什么书或者资料推荐吗