日志是很重要的一个东西 能够帮助你维护好你的代码 在开发阶段也能帮你发现错误
目前 经常使用的日志 大概就是log4j slf4j logback 这三个 但是这三个不能都组合在一起 常用的组合 log4j+slf4j slf4j+logback
如果要使用log4j的话 我是使用了log4j+slf4j的组合 这个组合需要的包:
也有很多人选择用log4j去桥接slf4j的包 但是 log4j-over-slf4j 这个包不能和 slf4j-log4j12 这个包共存 他们会相互调用 导致stackover 由于项目中使用的jsr303验证需要后者包 所以就选择了这种的桥接方式 这样丝毫不会影响你使用log4j输出日志
配置:
log4j.rootLogger=ERROR,Console,File #控制台日志 log4j.appender.Console=org.apache.log4j.ConsoleAppender log4j.appender.Console.Target=System.out log4j.appender.Console.layout=org.apache.log4j.PatternLayout log4j.appender.Console.layout.ConversionPattern=[%p][%t][%d{yyyy-MM-dd HH\:mm\:ss}][%C] - %m%n #普通文件日志 log4j.appender.File=org.apache.log4j.DailyRollingFileAppender log4j.appender.File.Append = true log4j.appender.File.File=logs/bid log4j.appender.File.DatePattern=yyyy-MM-dd'.log' #输出日志,如果换成DEBUG表示输出DEBUG以上级别日志 log4j.appender.File.layout=org.apache.log4j.PatternLayout log4j.appender.File.layout.ConversionPattern=[bid]%p[%t][%d{yyyy-MM-dd HH\:mm\:ss}][%C] - %m%n如果将第一行的ERROR 改为DEBUG 那么项目启动的时候会大量的输出日志
然后日志的生成的策略是每天生成 也就是说你如果是第一天使用日志 日志的名字不会加上 你所配置的追加后缀 第二天才会出来
差点忘记了 这个默认生成文件的位置是服务器的bin路径下 也就是File.File那里配置的东西 如果你使用的tomcat就去tomcat的bin路径下招 想要直接输出到项目下 很复杂 没有找到简单的办法 有知道的麻烦告诉一下。。纠结了很久。。
web.xml中的配置:
<context-param> <param-name>log4jConfigLocation</param-name> <param-value>WEB-INF/classes/log4j.properties</param-value> </context-param>这个地方为什么要放在web-inf下 就是因为每次启动的时候提示找不到配置文件 但是日志又正常输出 。。。很诡异 最后复制一份 放在了classes里面 就不报错了。
<!--利用spring使用log4j--> <listener> <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> </listener>这个spring管理日志的东西 。。有点奇怪的一点是spring好像抛弃了log4j 网上搜索了很多都没有结果 就是你选择listener的时候 会发现log4jConfigListener被划掉了 但是最后也不会影响使用
最后贴一下我经常去下载包的网址 :
http://mvnrepository.com/
这都是没用maven的锅。。。