這是本文件的舊版!
Bridge JUL to SLF4j
How to use?
log4j.rootCategory=WARN, CONSOLE .level= ALL handlers= java.util.logging.ConsoleHandler java.util.logging.ConsoleHandler.level= ALL log4j.additivity.expect4j=false log4j.logger.expect4j=TRACE, CONSOLE # CONSOLE is set to be a ConsoleAppender using a PatternLayout. log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender log4j.appender.CONSOLE.Threshold=TRACE log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout log4j.appender.CONSOLE.layout.ConversionPattern=%d{dd/MM HH:mm:ss} %5p[%t] %X{usedheap}(%F:%M:%L) - %m%n
@Test public void test() throws Exception { readLog4jConfigFromClasspath(); //readLog4jConfigFromFilePath(); SLF4JBridgeHandler.removeHandlersForRootLogger(); SLF4JBridgeHandler.install(); Expect4j.log.finest("test1"); Expect4j.log.info("test2"); Expect4j.log.fine("test3"); }
Config In File
Load from ClassPath
private void readLog4jConfigFromClasspath(){ InputStream is = this.getClass().getResourceAsStream("/log4j.properties"); try { LogManager.getLogManager().readConfiguration(is); } catch(Exception e) { throw new RuntimeException(e); } finally { Cleaner.close(is); } }
Load from FilePath
private void readLog4jConfigFromFilePath(){ Properties prop = System.getProperties(); prop.setProperty("java.util.logging.config.file", "test/log4j.properties"); try { LogManager.getLogManager().readConfiguration(); } catch(Exception e) { throw new RuntimeException(e); } }