📄 myloggertest.java
字号:
/* * Copyright (C) The Apache Software Foundation. All rights reserved. * * This software is published under the terms of the Apache Software * License version 1.1, a copy of which has been included with this * distribution in the LICENSE.txt file. */package examples.subclass;import org.apache.log4j.*;import org.apache.log4j.spi.LoggerFactory;import org.apache.log4j.xml.DOMConfigurator;import examples.customLevel.XLevel;import org.apache.log4j.PropertyConfigurator;import org.apache.log4j.helpers.LogLog;/** A simple example showing logger subclassing. <p>The example should make it clear that subclasses follow the hierarchy. You should also try running this example with a <a href="doc-files/mycat.bad">bad</a> and <a href="doc-files/mycat.good">good</a> configuration file samples. <p>See <b><a href="doc-files/MyLogger.java">source code</a></b> for more details.*/public class MyLoggerTest { /** When called wihtout arguments, this program will just print <pre> DEBUG [main] some.cat - Hello world. </pre> and exit. <b>However, it can be called with a configuration file in XML or properties format. */ static public void main(String[] args) { if(args.length == 0) { // Note that the appender is added to root but that the log // request is made to an instance of MyLogger. The output still // goes to System.out. Logger root = Logger.getRootLogger(); Layout layout = new PatternLayout("%p [%t] %c (%F:%L) - %m%n"); root.addAppender(new ConsoleAppender(layout, ConsoleAppender.SYSTEM_OUT)); } else if(args.length == 1) { if(args[0].endsWith("xml")) { DOMConfigurator.configure(args[0]); } else { PropertyConfigurator.configure(args[0]); } } else { usage("Incorrect number of parameters."); } try { MyLogger c = (MyLogger) MyLogger.getLogger("some.cat"); c.trace("Hello"); c.debug("Hello"); } catch(ClassCastException e) { LogLog.error("Did you forget to set the factory in the config file?", e); } } static void usage(String errMsg) { System.err.println(errMsg); System.err.println("\nUsage: "+MyLogger.class.getName() + "[configFile]\n" + " where *configFile* is an optional configuration file, "+ "either in properties or XML format."); System.exit(1); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -