logback.xml文件中的配置
<?xml version="1.0" encoding="UTF-8" ?> <!-- 日志组件启动时,打印调试信息,并监控此文件变化,周期300秒 --> <configuration scan="true" scanPeriod="300 seconds" debug="false"> <!--针对jul的性能优化 --> <contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator"> <resetJUL>true</resetJUL> </contextListener> <!-- 配置文件,包括此文件内的所有变量的配置 --> <property name="LOG_PATH" value="${user.dir}/logs" /> <property name="APP_NAME" value="server" /> <!-- contextName主要是为了区分在一个web容器下部署多个应用启用jmx时,不会出现混乱 --> <contextName>${APP_NAME}</contextName> <!-- ***************************************************************** --> <!-- 配置输出到控制台,仅在开发测试时启用输出到控制台 ,下面的语句在window环境下生效,使用mac或者ubuntu的同学,请自己构造下 --> <!-- ***************************************************************** --> <if condition='property("os.name").toUpperCase().contains("WINDOWS") || property("os.name").toUpperCase().contains("MAC")'> <then> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{0}:%L- %msg%n</pattern> </encoder> </appender> <root> <appender-ref ref="STDOUT" /> </root> </then> </if> <!-- ***************************************************************** --> <!-- info级别的日志appender --> <!-- ***************************************************************** --> <appender name="APP-INFO" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${LOG_PATH}/${APP_NAME}-info-30dt.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${LOG_PATH}/${APP_NAME}-info-30dt.log.%d{yyyy-MM-dd}.%i </fileNamePattern> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <maxFileSize>1024MB</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> </rollingPolicy> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{0}:%L- %msg%n</pattern> </encoder> </appender> <!-- ***************************************************************** --> <!-- error级别日志appender --> <!-- ***************************************************************** --> <appender name="APP-ERR" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${LOG_PATH}/${APP_NAME}-error-30dt.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${LOG_PATH}/${APP_NAME}-error-30dt.%d{yyyy-MM-dd}.%i </fileNamePattern> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <maxFileSize>1024MB</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> </rollingPolicy> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>ERROR</level> </filter> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{0}:%L- %msg%n</pattern> </encoder> </appender> <!-- 根日志logger --> <root level="DEBUG"> <appender-ref ref="APP-ERR" /> <appender-ref ref="APP-INFO" /> <appender-ref ref="STDOUT" /> </root> </configuration>
遇到问题(1)
SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/Users/shuang/maven_repository/ch/qos/logback/logback-classic/1.0.13/logback-classic-1.0.13.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/Users/shuang/maven_repository/org/slf4j/slf4j-log4j12/1.7.12/slf4j-log4j12-1.7.12.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation SLF4J: Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder] log4j:WARN No appenders could be found for logger (com.alibaba.druid.pool.DruidDataSource). log4j:WARN Please initialize the log4j system properly. log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
上面的问题是因为存在相同的jar包,检查一下是否存在slf4j与log4j等相关重复jar包
遇到问题(2)
14:49:53,026 |-ERROR in ch.qos.logback.core.joran.conditional.IfAction - Could not find Janino library on the class path. Skipping conditional processing. 14:49:53,026 |-ERROR in ch.qos.logback.core.joran.conditional.IfAction - See also http://logback.qos.ch/codes.html#ifJanino 14:49:53,125 |-ERROR in ch.qos.logback.core.joran.action.AppenderRefAction - Could not find an appender named [STDOUT]. Did you define it below instead of above in the configuration file? 14:49:53,125 |-ERROR in ch.qos.logback.core.joran.action.AppenderRefAction - See http://logback.qos.ch/codes.html#appender_order for more details.
上面的问题是缺少下面的jar包
<!-- The org.codehaus.janino:commons-compiler:2.6.1 dependency --> <!-- will be automatically pulled in by Maven's transitivity rules --> <dependency> <groupId>org.codehaus.janino</groupId> <artifactId>janino</artifactId> <version>2.6.1</version> </dependency>
相关推荐
Logback 与 SLF4J 结合使用,提供了一个抽象层,使得应用程序可以轻松地切换到其他日志框架,如 Log4j 或 java.util.logging,而无需修改代码。SLF4J API 简洁且易于理解,使得日志记录成为一种轻量级任务。 在实际...
通过学习这些材料,你可以了解如何有效地配置和利用Logback,以及如何解决在实际项目中遇到的问题。 总结来说,Logback是一个强大的日志框架,其核心组件和API设计使得日志记录既高效又灵活。通过研究源码和使用...
8. **API 简洁性**:LogBack 的 API 设计得更加简洁和直观,与 SLF4J 的接口结合使用,使得日志记录更加高效且易于维护。 9. **可扩展性**:LogBack 的模块化设计允许开发者根据需求定制和扩展其功能,比如自定义...
在遇到未捕获的异常时,logback可以自动记录堆栈跟踪信息,这对于调试和问题定位非常有帮助。 **5. 扩展性** Logback允许用户自定义Appender和Layout,以满足特定需求。例如,你可以创建一个将日志发送到云存储服务...
日志是软件开发中的重要组成部分,它记录了应用程序运行时的详细信息,有助于开发者在遇到问题时进行调试和故障排查。Logback 是一个高效、可配置的日志框架,由 Ceki Gülcü 创建,他是早期流行日志框架 Log4j 的...
为了解决这一问题,需要采用logback-spring.xml文件替代logback.xml文件,并利用Spring Boot提供的配置机制,通过在logback-spring.xml中使用${}语法来引用application.yml中定义的属性。这样logback-spring.xml中的...
然而,随着时间的推移,Log4j的某些设计决策和性能问题使得开发者转向了更新的解决方案,比如Logback。Log4j的配置相对复杂,但其灵活性使其在许多项目中仍然占有一席之地。 Commons-Logging是Apache基金会的一个...
当使用logback作为日志框架时,通常我们会将配置文件放在`src/main/resources`目录下,命名为`logback-spring.xml`,这是因为Spring Boot默认支持`logback-spring.xml`,它能与Spring的自动配置机制集成。...
这些问题都可以通过调整Logback配置或使用Spring Boot的特性来解决。 总之,Spring Boot与SLF4J和Logback的集成为Java开发者提供了一种简单而强大的日志解决方案。通过理解和掌握这些工具的使用,你可以更好地管理...
为了解决这个问题,可以通过在logback.xml中配置动态属性,为每个实例的日志文件命名添加独特的标识,例如IP地址或UUID,或者将它们两者结合起来使用。这样,每个实例的日志就可以存储在不同的文件中,避免了冲突。 ...
通过以上步骤,大多数基于Spring Boot的日志(logback)报错问题都能得到解决。如果问题依然存在,那么可能需要进一步检查Spring Boot的自动配置或者自定义日志配置,以确定是否有其他的配置冲突或错误。在开发过程中...
Logback 是一个流行的 Java 日志框架,用于记录应用程序运行过程中的各种信息。它提供了高度的灵活性和可配置性,使得开发者能够根据需求调整日志输出级别。本文将深入探讨如何在运行时动态修改 Logback 的日志级别...
8. **社区支持**:由于其广泛使用和强大的社区支持,遇到问题时,开发者可以在网上找到大量的解决方案和示例。 9. **文件名称列表解析**:提供的文件名“logback-master”可能是一个Logback项目的源码仓库,包括了...
例如,当遇到问题时,可以通过查看Logback记录的日志,追踪到SpringMVC和MyBatis中的具体操作,从而定位并解决问题。 在"cloudview"这个项目中,可能是一个基于SpringMVC和MyBatis构建的云服务相关的Web应用,而...
论文则详细阐述了设计思路、技术选型、实现过程以及遇到的问题与解决方案,为开发者提供了宝贵的实践经验和理论指导。 总结,JSPSmart系统通过精细的权限管理和详尽的日志记录,实现了对企业级应用系统的全面安全...
myLogApp的使用者可能利用grep、awk等命令行工具,或者可视化工具(如Kibana)来分析日志,解决问题。 10. **日志的最佳实践** - 不要过度日志:过多的日志会消耗资源,影响性能。 - 格式化日志:清晰的格式有利...
无论是在小型项目还是大型复杂系统中,`bugsnag-logback`都能帮助开发者快速定位和解决问题,从而提高软件质量,减少用户遇到问题的概率。对于任何使用Logback的Java开发者来说,这是一个值得尝试和采用的工具。
强大的日志框架不仅能够记录基本的错误信息,还能详细跟踪程序行为,提供丰富的上下文信息,帮助开发者快速定位并解决问题。 "强大的日志框架,能记录程序中出现的异常" 这个标题揭示了日志框架的核心功能之一——...