首先,我们没有从头实现一个日志,我们不过是 适配 日志。我们适配了 log4j 。但是为什么呢? 为什么不直接依赖 slf4j 呢?
我必须要在这里重申一下 Nutz 框架的目标:
如果你下载了 Nutz 的 jar,满心欢喜的加到你的项目里,然后,运行你的项目,你会发现从 Nutz.jar 里会迅速抛出 一个异常。经过一番查阅,你发现你不得不访问 slf4j 的网站,下载它的 jar 包,然后再加入自己的项目里...
你会因此而很高兴吗?
........
不不,起码我不会高兴。 :(
如果这个功能特别复杂,以至于我们没有能力做到很好,我们肯定会毫不犹豫的依赖其他的 jar 包的。比如 1.a.23 之前,我们依赖了 javassist, 1.a.24 我们包括了 ASM。
另外一个原因:随着 Nutz 使用的人越来越多,如果它依赖了过多的 Jar 包,便会导致人们更多的下载行为,从而浪费不必 要的带宽,耗费更多的电能,从而让这个地球排放更多的温室气体,厄尔尼诺现象加剧,北极融化,珍稀物种灭绝,农作物 减产,粮食供应紧张,不利于喝血社会,不能体现带三个婊的以德治国的精神。
.
..
...
....
.....
......
好吧,我承认,我上面说的统统是狡辩,根本原因不过是因为手痒痒。而且我揭发:实际上这个模块代码都是 wendal 和 Sunonfire 写的,我其实不过是出来打酱油的 ...
Nutz Log的基本用法和常见的log4j等工具没什么不同。比如:
public class MyClass {
private static final Log log = Logs.getLog(MyClass.class);
public void myFuncion() {
if (log.isDebugEnabled())
log.debug("I am debug message");
}
}
Nutz.Log 使用了插件技术,其中优先级依次为:
它们可以使用的条件是:
以 log4j 为例 (因为我就对这个熟),你需要:
log4j.rootLogger=DEBUG, A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
本页面的文字允许在知识共享 署名-相同方式共享 3.0协议和GNU自由文档许可证下修改和再使用。