java日志管理(slf4j+logback,tomcat)
来源:互联网 发布:asp.net mvc5实例源码 编辑:程序博客网 时间:2024/06/05 05:34
对slf4j的理解:
slf4j只是一个日志抽象层,独立于其他所有的日志类库,需要配合其他的日志类库使用,例如logback,具体的日志级别输出、记录位置、日志格式通过具体的日志类库来实现;
slf4j能整合其他的日志类库,使得不同的日志类库能统一维护;
slf4j占位符{}功能利好,更好的输出日志;
对logback的理解:
logback是log4j创始人又一个日志开源组件;
logback包括三个jar:
logback-core,基础模块
logback-classic,为log4j的改良版本
logback-access,访问模块与Servlet容器集成提供通过Http来访问日志的功能。如何使用http访问日志?
slf4j和logback所需jar包:
logback-classic-0.9.29.jar
logback-core-0.9.29.jar // logback核心包
slf4j-api-1.6.2.jar // slf4j核心包
其他日志类库:
Log4j
commons logging
logback
java.util.logging
logback.xml相关说明:
打印日志格式pattern:
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - [%method,%line] - %msg%n
%d // 输出时间,{}中间是时间格式
%thread // 线程名称
%-5level // 日志级别名称,从左显示5个字符宽度
%logger{36} // 日志所在类名,36标识名称最多输出36个字符
%method // 日志所在方法名
%line // 日志所在类行数
%msg // 日志信息
%n // 换行
日志打印级别从低级到高级排序的顺序是:
TRACE < DEBUG < INFO < WARN < ERROR
tomcat的日志记录:
tomcat记录日志在conf/logging.properties文件中配置
tomcat有如下几种日子类别:catalina、localhost、manager、admin、host-manager
其中用到最多的是catalina日志,该日志会将tomcat的启动日志、java程序logback等打印的日志、以及jar中打印的日志全部打印
在conf/logging.properties关闭catalina日志:1catalina.org.apache.juli.FileHandler.level = OFF
项目结构:
package com.test;import org.slf4j.Logger;import org.slf4j.LoggerFactory;public class LogTest {private static final Logger log = LoggerFactory.getLogger(LogTest.class);private static void test(){log.info("info周星星喜欢,{}", "白晶晶");log.debug("debug周星星喜欢,{}", "紫霞");log.warn("warn周星星喜欢,{}", "牛魔王的妹妹");log.error("error周星星喜欢,{}", "达叔");log.info("info周星星电影:{}、{}", new String[]{"唐伯虎点秋香","大话西游"});}public static void main(String[] args) {test();}}
<?xml version="1.0" encoding="UTF-8" ?><configuration> <property name="LOG_HOME" value="/home/tomcatlog/logs/ibutler" /> <!-- 控制台输出日志 --> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <layout class="ch.qos.logback.classic.PatternLayout"> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - [%method,%line] - %msg%n</pattern> </layout> </appender> <!-- 按照每天生成日志文件 --><appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${LOG_HOME}/ibutler.log</file><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!-- 日志文件输出的文件名 --><fileNamePattern>${LOG_HOME}/ibutler.%d{yyyy-MM-dd}.%i.log</fileNamePattern><!-- 日志文件保留天数 --><maxHistory>365</maxHistory><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>500MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy></rollingPolicy> <encoder><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - [%method,%line] - %msg%n</pattern></encoder></appender> <!-- 文件输出日志 (文件大小策略进行文件输出,超过指定大小对文件备份) --> <!-- <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <File>xxxx.log</File> <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> <FileNamePattern>xxxx.log.%i.bak</FileNamePattern> <MinIndex>1</MinIndex> <MaxIndex>12</MaxIndex> </rollingPolicy> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <MaxFileSize>100MB</MaxFileSize> </triggeringPolicy> <layout class="ch.qos.logback.classic.PatternLayout"> <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</Pattern> </layout> </appender> --> <!-- 指定特定包名下的日志输出,例如特别指定com.test下的日志级别为warn --> <!-- level 输出指定日志级别以上的日志,日志级别大小关系:TRACE<DEBUG<INFO<WARN<ERROR --> <!-- appender-ref 指定输入日志形式 --> <!-- <logger name="com"> <level value="INFO" /> <appender-ref ref="STDOUT" /> <appender-ref ref="FILE" /> </logger> --> <!-- 指定所有的日志的级别,优先级比logger设置的优先级高 --> <root level="debug"><appender-ref ref="STDOUT" /><!-- <appender-ref ref="FILE" /> --></root></configuration>
- java日志管理(slf4j+logback,tomcat)
- logback slf4j管理 日志
- Java日志管理:common-logging、slf4j、log4j、logback的关系
- java日志: logback和slf4j
- java 日志 slf4j, log4j, logback
- JAVA 开发平台的技术和框架(五)日志管理 :common-logging slf4j log4j logBack
- tomcat 日志log4j,slf4j,logback冲突
- java日志组件介绍(common-logging,log4j,slf4j,logback )
- java日志组件介绍(common-logging,log4j,slf4j,logback )
- java日志组件介绍(common-logging,log4j,slf4j,logback )
- java日志组件介绍(common-logging,log4j,slf4j,logback )
- java日志组件介绍(common-logging,log4j,slf4j,logback )
- java日志组件介绍(common-logging,log4j,slf4j,logback )
- java日志组件介绍(common-logging,log4j,slf4j,logback )
- java日志组件介绍(common-logging,log4j,slf4j,logback)
- java日志组件介绍(common-logging,log4j,slf4j,logback )
- java日志组件介绍(common-logging,log4j,slf4j,logback )
- java日志组件介绍(common-logging,log4j,slf4j,logback )
- 每日一发Python---Python基础及安装
- TCP协议与UDP协议的区别
- 【编程素质】MVC三层架构和android框架MVC,MVP,MVVM
- 盛大杯部分题
- Canvas之绘制字符串
- java日志管理(slf4j+logback,tomcat)
- ijkplayer支持分段播放设置
- redmine和testlink的迁移和集成
- 代码片段10-12
- MYsql DATE(),now(),CURRENT_TIMESTAMP 和 CURRENT_TIMESTAMP()函数的使用
- 输出一个反数 c/c++
- Python的方法解析顺序(MRO)
- 使用list()和each()函数来遍历数组
- impixelinfo