日期:2014-05-20  浏览次数:20803 次

java.util.logging 使用过程中的问题:配置文件logging.properties的使用
我想要使用自己的配置文件,而不是使用lib包下面的默认文件。
我知道配置文件中的内容应该是下面的意思
   
于是,我在相同的目录下新建了一个logging.properties属性文件。
内容如下:

handlers   =   java.util.logging.FileHandler,

java.util.logging.ConsoleHandler.Level   =   INFO

java.util.logging.ConsoleHandler.pattern   =   runtime.log

java.util.logging.ConsoleHandler.limit   =   50000

java.util.logging.ConsoleHandler.count   =   2

java.util.logging.ConsoleHandler.formatter   =   java.util.logging.XMLFormatter

我在java代码是下面这么写的
LogManager   lm   =   LogManager.getLogManager();
try   {
String   fname   =   "logging.properties ";
InputStream   in   =   new   FileInputStream(new   File(fname));
BufferedInputStream   bin   =   new   BufferedInputStream(in);
lm.readConfiguration(bin);

          }   catch   (SecurityException   e)   {
//   TODO   Auto-generated   catch   block
e.printStackTrace();
}   catch   (IOException   e)   {
//   TODO   Auto-generated   catch   block
e.printStackTrace();
}



FileHandler   myFileHandler   =   null;
try   {

boolean   append   =   true;
        myFileHandler   =   new   FileHandler( "asdf.log ",   append);

logger.addHandler(myFileHandler);
logger.log(Level.SEVERE, "do   it ");
logger.log(Level.SEVERE, "do   it ");
//myFileHandler.publish(lr);



}   catch   (IOException   e)   {
System.out.println( "This   is   a   IOException ");
}   finally
{
myFileHandler.close();
}

但是输出的结果却不是我在配置文件里面的要求

大家   那里有高手帮帮忙了.



------解决方案--------------------
那就是没找到你定义的配置文件咯。logging的使用没那么麻烦啊。在你的工程文件的跟目录。或者是lib目录。总之就是classpath之类的地方。让系统能找到就行了。或者你也可以直接用System.getProperties( "user.dir ")+ "logging.properties "获得.使用的时候
在程序里面private final static Log log = LogFactory.getLog(你的类.class);
log.info( "log ");
就可以了
------解决方案--------------------
对,把log4j.properties文件多放几个地方试试