不灭的焱

革命尚未成功,同志仍须努力

作者:php-note.com  发布于:2019-01-12 11:47  分类:Java  编辑

如果是在 try {} catch(xxx e) {} 的 catcth 分支中,很容易捕获和记录异常时的堆栈信息,直接把 Exception对象 当着参数传进去即可,但是,有时候需要在没有发生异常的情况下打印堆栈,,,其实也挺简单,现场新建一个 Throwable对象 即可,参考代码如下:

// 省略了 其他代码

if (StrKit.isBlank(fileName)) {
    logger.warn("文件名为空", new Throwable());
    return null;
}
作者:php-note.com  发布于:2019-01-02 23:28  分类:Java  编辑

slf4j与log4j联合使用

slf4j是什么?slf4j只是定义了一组日志接口,但并未提供任何实现,既然这样,为什么要用slf4j呢?log4j不是已经满足要求了吗?

是的,log4j满足了要求,但是,日志框架并不只有log4j一个,你喜欢用log4j,有的人可能更喜欢logback,有的人甚至用jdk自带的日志框架,这种情况下,如果你要依赖别人的jar,整个系统就用了两个日志框架,如果你依赖10个jar,每个jar用的日志框架都不同,岂不是一个工程用了10个日志框架,那就乱了!

作者:php-note.com  发布于:2018-11-10 19:46  分类:Java  编辑

SLF4J的全称是Simple Logging Facade for Java,即简单日志门面。SLF4J并不是具体的日志框架,而是作为一个简单门面服务于各类日志框架,如java.util.logging, logback和log4j。

SLF4J提供了统一的记录日志的接口,对不同日志系统的具体实现进行了抽象化,只要按照其提供的方法记录即可,最终日志的格式、记录级别、输出方式等通过绑定具体的日志系统来实现。

作者:php-note.com  发布于:2018-11-10 16:20  分类:Java  编辑

当前环境:SpringMVC + Mybatis + Spring

在项目中 pom.xml 加入 log4j包 的依赖,更新 Maven

作者:php-note.com  发布于:2018-11-10 15:15  分类:Java  编辑

slf4j入口就是众多接口的集合,他不负责具体的日志实现,只在编译时负责寻找合适的日志系统进行绑定。具体有哪些接口,全部都定义在slf4j-api中。查看slf4j-api源码就可以发现,里面除了public final class LoggerFactory类之外,都是接口定义。因此,slf4j-api本质就是一个接口定义。