zollty-log
The ZolltyLog is a simple, generic and flexible logging library for Java, which can work with other logging frameworks, like log4j.
public static final Logger LOG = LogFactory.getLogger(); // Concise
LOG.error("Hello {}, welcome to {}", "GUYS", "ZolltyLog Demo"); // use placeholder
if( LOG.isDebugEnabled() ) { // Local log level control
LOG.error(e, "Some additional tips....");
}
1、基本使用
直接引入zollty-log的jar包即可用。zollty-log的日志有Trace、Debug、Info、Warm、Error等级别。如果不配置,它默认使用TRACE级别,使用Java的System.out标准输出流,在控制台来输出日志。
2、简单配置
如果想自定义日志输出级别,或者日志输出的方式,可以在zollty-log.properties文件中配置。
在classpath中新建一个名为zollty-log.properties的文件,例如maven项目在如下地址
src/main/resources/zollty-log.properties
rootLogger=TRACE,STDOUT appender.STDOUT.layout.className=simple logger.org.zollty.dbk=INFO第一行是主要配置,指出日志阀门的级别和日志的实现方式。
2)第二个参数,是日志的实现方式。可以指定用何种日志程序来输出日志。比如STDOUT,它是Zollty-Log日志库自带的STDOUT标准输出,换句话说,就是用Java的System.out来输出。还有LOG4J,表示使用Log4j来输出日志(需要引入Log4j的jar包)。除了zollty-log中自带的STDOUT和LOG4J外,还支持自定义的日志实现类,比如
com.zollty.report.log.TreLog4jLogger,任何继承于org.zollty.log.LoggerSupport的日志实现类都可以(在第三节“高级用法”中会详细说明)。
表示输出日志时,前缀的类名称的形式,1)类的全名(比如org.zollty.log.ConsoleAppender),2)短名称(比如ConsoleAppender)。当配置为simple时,日志输出时用类的短名称,如果不配置或者配置其他值,则用类全名。
三、高级用法
1、自定义Logger实现类
一个简单的例子如下:
public class TreLog4jLogger implements org.zollty.log.Logger, LoggerSupport {
private static final String FQCN = LoggerWrapper.class.getName();private transient org.apache.log4j.Logger logger;
public TreLog4jLogger(){}
public TreLog4jLogger(String name) {this.logger = org.apache.log4j.Logger.getLogger(name);}@Overridepublic org.zollty.log.Logger newInstance(String name) {return new TreLog4jLogger(name);}
@Overridepublic void info(Object message) {logger.log(FQCN, Level.INFO, message, null);}@Overridepublic void info(Throwable e) {logger.log(FQCN, Level.INFO, Utils.ExceptionUtil.getStackTraceStr(e), null);}...省略其他debug、warn方法,它们都和info方法类似。
public void refreshMlf4jConfig(String configStr) { InputStream in = MvcUtils.IOUtil.getInputStreamFromString(configStr, "UTF-8"); Properties props = new Properties(); try { props.load(in); } catch (IOException e) { throw new NestedRuntimeException(e); } Map<String, String> pmap = LogUtils.covertProperties2Map(props); LogManager.refreshZolltyLogConfig(pmap); }
可以引入Log-monitor插件,在线查看和配置日志。