问题标签 [logback-classic]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 如何启用 logback 以每 x 分钟/5 分钟/30 分钟轮换一次日志文件?
我知道 logback.xml 可以轻松地每天、每小时或每周轮换我的日志。如何配置时间戳fileNamePattern
以便每半小时或“x”分钟轮换一次日志?
或者这里是否需要进行代码级别的更改?如果是这样,对于高性能业务级应用程序来说,它是线程安全且高效的吗?
spring - Spring Boot以不同的顺序加载日志类
我不确定你们中有多少人对此很熟悉,但是在两个不同的环境中运行同一个应用程序会导致我的 Spring Boot 应用程序以不同的顺序加载其日志依赖项。我使用 logback-classic-1.1.7 和 slfj4j-log4j12-1.7.13 运行。
现在,我现在知道 logback 已经嵌入了 slfj(至少,现在我这样做了),它通常会显示一个多重绑定警告,然后它会继续。该应用程序将启动。
我读过,有时当 slf4j 发现多个绑定时,它有时会随机选择一个。我已经删除了其他不必要的依赖项,这解决了我的问题。我更感兴趣的是为什么同一个应用程序会通过在具有相同 linux 版本的不同服务器上运行来加载错误的记录器。在另一个环境中运行,当我尝试启动它时的结果是:
在这种环境中,它以相反的顺序加载两个竞争的记录器,然后应用程序无法启动。有谁知道更多关于 Spring 加载依赖项的行为以及为什么它会在不同的环境中以不同的顺序加载它们?这导致此错误在一段时间内未被注意到。两种环境都有相同的 linux 版本。
提前致谢
java - 为一个应用程序运行生成一个额外的空白日志文件
我为我的应用程序配置了记录器,并将日志文件名作为当前时间戳记,因此它希望创建一个名称为当前时间戳记的日志文件,但插入它创建一个具有当前时间戳记的日志文件和另一个空白的文件无法弄清楚为什么创建额外的文件??
我在我的应用程序中使用 Logback 记录器,这是我的 logback.xml 看起来我的应用程序是简单的核心 java 应用程序。我在哪里用户记录器记录语句
java - 有没有办法在压缩旋转的日志文件之前添加延迟
在压缩旋转的日志文件之前,我需要添加一些单位时间的延迟。我正在使用 logback-core,我的 xml 看起来像这样:-
有什么办法吗?我在这里看到了一种扩展滚动策略类的方法,但不确定类似的方法是否可以在这里工作。
logging - 在 IDE 中运行时的 Logback 配置
有没有什么很酷的技巧可以让单一logback.xml
配置改变 PROD 与在 IDE 中运行?
我想根据我是在我的 IDE 中运行还是在 jar 中的 PROD 中运行来使用不同的附加程序、模式和日志级别。
我目前在中使用 2 个不同的文件src/main/resources
:logback.xml(在 PROD/jar 中使用)和 logback-dev.xml,在我的 IDE 中运行时使用。不理想的部分是每个开发人员都必须配置他们的 IDE 启动器以包含-Dlogback.configurationFile=path/to/logback-dev.xml
. 换句话说,它在 git clone 之后不能开箱即用。我还试图避免在我的 VCS 中提交特定于 IDE 的启动器
我看到了<if>
构造,但我不确定我可以使用什么条件来检测 IDE。if
条件似乎非常严格:
条件是一个 Java 表达式,其中只能访问上下文属性或系统属性
我也尝试使用logback-test.xml
insrc/test/resouces
但这仅适用于单元测试,并且在正常启动应用程序时它不会被 maven 复制到类路径
如果有任何用处,我正在使用 IntelliJ、maven 和 git
java - Logback 不适用于 Spring Boot 和 Tomcat
我正在尝试在 Tomcat 服务器上设置 Spring Boot 应用程序,但遇到了问题。我不断收到以下错误:
这是我的程序的主要类:
我一直注意到的是,我之前所说的错误似乎发生在 SpringBootServletInitializer 类中的这一行之后:
编辑:这是我的 POM 文件。
logback - slf4j, logback, 目标压缩文件名已经存在
登录 1.1.5 + slf4j 1.7.4。
半夜翻车
但几秒钟后,翻转再次开始
WLS 的 2 个虚拟服务器上有 2 个应用程序。这两个应用程序都使用带有您自己的 logback.xml 的单独主文件夹。
logback.xml 是
我能做些什么?
java - Logback 没有正确清理文件
我正在使用 Logback 来管理服务器上的日志。我用RollingFileAppender
一个TimeBasedRollingPolicy
:
我设置maxHistory
为 168 以将日志保留 7 天(每小时一个文件,每天 24 个文件 = 168 个文件)。
查看history
文件夹,我希望找到过去 7 天的子目录和每个子目录中的 24 个压缩日志文件(除了当前的和最旧的)。
但是大约 4 个月前有 76 个文件夹。有几天没有文件夹,许多文件夹不包含每小时的 zip 文件。history
但树中总共有 1000 多个 zip 文件。
所以有某种清理,但似乎有些文件很晚才被清理。我的配置有什么问题?我正在使用版本 logback-classic-1.2.3。
logback - 在 SiftingAppender 中使用 RollingFileAppender 时不起作用
我有以下 logback 设置
鉴别器类通过解析 loggerName 返回一个值。密钥被定义为“fileName”。
当我只测试 RollingFileAppender (在用${fileName}
静态值替换变量引用之后)时,日志翻转很好,但是当我将它嵌套在 SiftingAppender 下时,日志不会翻转。我测试了筛选附加程序,"FileAppender"
它能够根据鉴别器创建正确的文件名。
我还使用鉴别器测试了相同的配置
并删除class
标签。这会创建appname.log
但不会翻转。
设置debug="true"
没有将任何附加信息写入日志文件。
我在这里错过了什么吗?如何在 SiftingAppender 中实现 RollingFileAppender?
spring-boot - ClassNotFoundException:org.slf4j.impl.StaticLoggerBinder
我正在使用 boot-starter-parent 版本将 spring 应用程序转换为 spring-boot:2.0.4.RELEASE。当我使用 mvn install 构建时,它运行良好,但是当我尝试使用 command: 运行应用程序mvn spring-boot:run -Dspring.profiles.active=dev
时,我得到了这个异常: ClassNotFoundException: org.slf4j.impl.StaticLoggerBinder
这是我的 pom 中的依赖项:
我已经尝试遵循这个问题的建议,并使用新旧版本的 logback(核心和经典)依赖项,并添加 'slf4j-log4j12' 和 'slf4j-simple' 但仍然出现异常。堆栈跟踪是:
java.lang.NoClassDefFoundError: org/slf4j/impl/StaticLoggerBinder 在 org.springframework.boot.logging.logback.LogbackLoggingSystem.getLoggerContext (LogbackLoggingSystem.java:285) 在 org.springframework.boot.logging.logback.LogbackLoggingSystem.beforeInitialize (LogbackLoggingSystem .java:102) 在 org.springframework.boot.context.logging.LoggingApplicationListener.onApplicationEvent (LoggingApplicationListener.java:170) 在 org.springframework.boot.context.logging.LoggingApplicationListener.onApplicationStartingEvent (LoggingApplicationListener.java:191)。 springframework.context.event.SimpleApplicationEventMulticaster.invokeListener (SimpleApplicationEventMulticaster.java:167) at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent (SimpleApplicationEventMulticaster.java:139) 在 org.springframework.boot.context.event.EventPublishingRunListener.starting (EventPublishingRunListener.java:68) 在 org.springframework.boot.SpringApplicationRunListeners 的 org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent (SimpleApplicationEventMulticaster.java:122) .starting (SpringApplicationRunListeners.java:48) 在 org.springframework.boot.SpringApplication.run (SpringApplication.java:316) 在 org.springframework.boot.SpringApplication.run (SpringApplication.java:1258) 在 org.springframework.boot。 com.hbo.esp.MyApplication.main (MyApplication.java:17) 上的 SpringApplication.run (SpringApplication.java:1246) sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)org.springframework.boot.SpringApplicationRunListeners.starting (SpringApplicationRunListeners.java:48) at org.springframework.boot.context.event.EventPublishingRunListener.starting (EventPublishingRunListener.java:68) 的 multicastEvent (SimpleApplicationEventMulticaster.java:122) .boot.SpringApplication.run (SpringApplication.java:316) 在 org.springframework.boot.SpringApplication.run (SpringApplication.java:1258) 在 org.springframework.boot.SpringApplication.run (SpringApplication.java:1246) 在 com。 hbo.esp.MyApplication.main (MyApplication.java:17) 在 sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)org.springframework.boot.SpringApplicationRunListeners.starting (SpringApplicationRunListeners.java:48) at org.springframework.boot.context.event.EventPublishingRunListener.starting (EventPublishingRunListener.java:68) 的 multicastEvent (SimpleApplicationEventMulticaster.java:122) .boot.SpringApplication.run (SpringApplication.java:316) 在 org.springframework.boot.SpringApplication.run (SpringApplication.java:1258) 在 org.springframework.boot.SpringApplication.run (SpringApplication.java:1246) 在 com。 hbo.esp.MyApplication.main (MyApplication.java:17) 在 sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)springframework.boot.SpringApplicationRunListeners.starting (SpringApplicationRunListeners.java:48) at org.springframework.boot.SpringApplication.run (SpringApplication.java:316) at org.springframework.boot.SpringApplication.run (SpringApplication.java:1258) at org .springframework.boot.SpringApplication.run (SpringApplication.java:1246) at com.hbo.esp.MyApplication.main (MyApplication.java:17) at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)springframework.boot.SpringApplicationRunListeners.starting (SpringApplicationRunListeners.java:48) at org.springframework.boot.SpringApplication.run (SpringApplication.java:316) at org.springframework.boot.SpringApplication.run (SpringApplication.java:1258) at org .springframework.boot.SpringApplication.run (SpringApplication.java:1246) at com.hbo.esp.MyApplication.main (MyApplication.java:17) at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)hbo.esp.MyApplication.main (MyApplication.java:17) 在 sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)hbo.esp.MyApplication.main (MyApplication.java:17) 在 sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)