问题描述
注:想听点实际点的经验之谈想利用Log4j来记录系统的日志,不知道有什么方法可以将日志文件分开。希望能做到:1.比如:TestA.javaTestB.java这两个类,我想在写其日志的时候,能写成TestA.txtTestB.txt,这样在查日志的时候就能非常方便的,很有针对性的去查。说到底,希望能有好的方法能动态的配置log4j.properties.2.对日志的级别有的模糊,怎样有效的设置日志输出级别。希望有高手能指点,或各位能有好的方法,请不惜赐教
解决方案
解决方案二:
那如果你有1000个类岂不是要有1000个对应的日志?
解决方案三:
static{try{Propertiesprop=newProperties();Stringurl="/"+LogUtil.class.getPackage().getName().replaceAll("\.","/")+"/log4j.properties";prop.load(LogUtil.class.getResourceAsStream(url));PropertyConfigurator.configure(prop);}catch(Exceptionre){re.printStackTrace();}}写到你的Class里,就可以分别调用不用的设定文件了.
解决方案四:
X不用的/不同的
解决方案五:
2楼的方法不错试试看
解决方案六:
好,路过....
解决方案七:
谢谢各位,继续等待新的回复。
解决方案八:
在配置文件中配置下就可以了!1、代码publicclassMyApp{staticLoggerlogger=Logger.getLogger(MyApp.class.getName());publicvoidtestMyApp(){PropertyConfigurator.configure("C:/DocumentsandSettings/Administrator/workspace/Logger/src/MyApp.property");//加载配置文件logger.info("Enteringapplication.");//要写入的信息System.out.println("helloworld!!");logger.info("Exitingapplication.");logger.debug("Operationerror");}}
比较关键就是这,配置文件:#log4j.rootLogger=debug,stdout,Rlog4j.logger.MyApp=debug,stdout,R#MyApp就是指MyApp类。配置了两个名字,stdout和Rlog4j.appender.stdout=org.apache.log4j.ConsoleAppender//配置控制台输出的log4j.appender.stdout.layout=org.apache.log4j.PatternLayout#Patterntooutputthecaller'sfilenameandlinenumber.log4j.appender.stdout.layout.ConversionPattern=%p[%t](%F:%L)-%m%n<%l>{%c}#%7p[%t](%F:%L)-%m%n<%l>{%c}{%l}log4j.appender.R=org.apache.log4j.RollingFileAppender#配置文件输入出log4j.appender.R.File=MyAppexample.loglog4j.appender.R.MaxFileSize=100KB#Keeponebackupfilelog4j.appender.R.MaxBackupIndex=1log4j.appender.R.layout=org.apache.log4j.PatternLayout#配置输出方式log4j.appender.R.layout.ConversionPattern=%p%t%c-%m%n如果想在加一个类,log4.logger.这里写你要操作的类。。下面在接着进行配置。。2、Debug是最高级别的。。这些网上很容易搜的到的!!