新的公司日志管理统一用logback,由于之前一直在用log4j,所以其实对logback这个由log4j长出来的家伙还不算陌生。
首先介绍下logback的前世今生。
slf4j是日志的接口(只定义了一些方法而没有去实现),和commons-logging一样。而log4j是具体的实现(即怎么来打印日志等),和logback是一样的。
slf4j由log4j作者Ceki开发,逐步取代apahce commons logging。
logback由log4j作者Ceki开发,逐步取代log4j。
slf4j等于commons-logging,是各种日志实现的通用入口,会根据classpath中存在下面哪一个Jar来决定具体的日志实现库。
logback相比较log4j的优势
slf4j支持参数化的logger.error("帐号ID:{}不存在", userId);
告别了if(logger.isDebugEnable()) 时代。
另外logback的整体性能比log4j也较佳,hibernate等项目已经采用了slf4j。
slf4j和logback的使用
1.如果日志的参数超过3个,需要写成
- Object[] params = {newVal, below, above};
- logger.debug("Value {} was inserted between {} and {}.", params);
2.因为内部已优化,作者认为slf4j的logger不需要定义为static。
3.可设置缓存后批量写日志文件(但服务器如果重启,可能会丢失未写到磁盘的记录)
4.MDC,用Filter,将当前用户名等业务信息放入MDC中,在日志format定义中即可使用该变量。
5.JMS Appender用于告警, DB Appender用于业务日志等可以使用插件,如生成Log代码的Eclipse插件Log4E。
6.tomcat和glassfish中,设定日志路径为../logs/xxxx.log 都能将日志放入应用服务器本身的logs目录。
最后把最近完善的一个logback.xml贴上,毕竟实际项目中的文件最能说明问题。
就先不做说明了,里面的配置还是比较明确的,关于jmsappender那部分,之前也做过简单说明。
分享到:
相关推荐
Logback 的配置文件是 XML 格式的,主要由几个部分组成:根节点 `<configuration>`、上下文名称 `<contextName>`、变量设置 `<property>`、时间戳 `<timestamp>`、 Logger 节点 `<logger>` 等。 1. 根节点 ...
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <root level=...
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <maxFileSize>100MB</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> <maxHistory>30</...
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <appender name=...
<groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.2.x</version> <!-- 使用相应的版本 --> </dependency> ``` 此外,`Logger`实例通常通过`LoggerFactory.getLogger...
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <appender name=...
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <appender name=...
`<logger>` 和 `<root>` 都可以包含 `<appender-ref>`,定义将使用哪些日志处理器(appender)。 例如,要为名为 `com.example.myApp` 的包设置日志级别并指派一个 appender,你可以这样配置: ```xml ...
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <appender name=...
Logback 配置文件的语法相当灵活,可以包含多个 `<appender>`(输出器)、多个 `<logger>`(日志器)和最多一个 `<root>`(根日志器)。`<pattern>` 中的转换符允许自定义日志格式,例如: - `%c{length}` 或 `%lo{...
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %X{sessionId} - %msg%n</pattern> </encoder> </appender> ...
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <appender name=...
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <!-- 日志输出...
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <appender name=...
<groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.x.x</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j...
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <root level=...
<artifactId>mysql-connector-java</artifactId> <version>8.x.x</version> </dependency> ``` 以上是关于Spring JDBC和JdbcTemplate的基础知识,以及在项目中如何引入和使用它们。通过合理配置和使用这些jar包,...
<groupId>org.springframework.ldap</groupId> <artifactId>spring-ldap-core</artifactId> <exclusions> <exclusion> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> </...
<groupId>net.logstash.logback</groupId> <artifactId>logstash-logback-encoder</artifactId> <version>7.x.x</version> <!-- 使用最新版本 --> </dependency> ``` 2. 配置日志:创建`logback-spring.xml`或`...
请注意,上述代码只是一个基本示例,实际使用时需要替换`<hostname>`、`<keyspace>`、`<username>`和`<password>`为你的Cassandra集群的实际信息。 总结来说,"cassandra2.1.2 JDBC最少依赖jar"是一个包含连接...