[java][57]log4j相关总结

1. log4j中DEBUG、INFO、WARN、ERROR和FATAL的区别

参考:https://blog.csdn.net/qq_18783269/article/details/62881081

一共分为五个级别: DEBUG INFO WARN ERROR FATAL 。这五个级别是有顺序的, DEBUG < INFO < WARN< ERROR < FATAL ,明白这一点很重要,这里 Log4j 有一个规则:假设设置了级别为 P ,如果发生了一个级别 Q P 高,则可以启动,否则屏蔽掉。
DEBUG:
这个级别最低的东东,一般的来说,在系统实际运行过程中,一般都是不输出的。因此这个级别的信息,可以随意的使用,任何觉得有利于在调试时更详细的了解系统运行状态的东东,比如变量的值等等,都输出来看看也无妨
INFO
:这个应该用来反馈系统的当前状态给最终用户的 ,所以,在这里输出的信息,应该对最终用户具有实际意义,也就是最终用户要能够看得明白是什么意思才行。从某种角度上说, Info 输出的信息可以看作是软件产品的一部分(就像那些交互界面上的文字一样),所以需要谨慎对待,不可随便。
WARN
ERRORFATAL:警告、错误、严重错误 ,这三者应该都在系统运行时检测到了一个不正常的状态,他们之间的区别,要区分还真不是那么简单的事情。我大致是这样区分的:
       
所谓警告,应该是这个时候进行一些修复性的工作,应该还可以把系统恢复到正常状态中来,系统应该可以继续运行下去。
       
所谓错误,就是说可以进行一些修复性的工作,但无法确定系统会正常的工作下去,系统在以后的某个阶段,很可能会因为当前的这个问题,导致一个无法修复的错误(例如宕机),但也可能一直工作到停止也不出现严重问题。
       
所谓 Fatal ,那就是相当严重的了,可以肯定这种错误已经无法修复,并且如果系统继续运行下去的话,可以肯定必然会越来越乱。这时候采取的最好的措施不是试图将系统状态恢复到正常,而是尽可能地保留系统有效数据并停止运行。

        也就是说,选择 WarnErrorFatal 中的具体哪一个,是根据当前的这个问题对以后可能产生的影响而定的,如果对以后基本没什么影响,则警告之,如果肯定是以后要出严重问题的了,则Fatal之,拿不准会怎么样,则 Error 之。


2. 可将tomcat的log4j2.xml的error级别修改为debug级别,从而输出更为详细的日志。一般在debug文件夹中,若没有该文件夹,则查看log4j2.xml的具体设置。


3. maven工程中报log4j错误

1)导入的maven工程报错:关于java.lang.NoClassDefFoundError: org/apache/log4j/Level......Class path contains multiple SLF4J bindings. 错误原因:包冲突。

参考:https://blog.csdn.net/blomer/article/details/20619889

解决:

        把pom.xml的以下2处注释掉

	                        
                                
        更新maven工程后,再运行,ok!



你可能感兴趣的:(java)