Tag: logback

如何在单个项目中使用具有logback的多个configuration?

logback的configuration文件可以在类path中find,因此是Eclipse-project-specific,这不是我想要的。 我使用多个Java实用程序,所有这些实用程序驻留在一个单独的项目(这共享类path),我需要使用一些特定的configuration。 我试过variables替代和Joramconfiguration器,但没有为我工作。 这很可能是我的错,有一天我会解决它,但现在我需要一个简单的解决scheme。

Logback和Jboss 7 – 不一起工作?

我有一个好奇的问题。 我有这个以前部署在tomcat中的Java应用程序,并且愉快地使用logback classic作为slf4j实现。 现在,当我们尝试在jboss 7.1.final服务器上部署相同的应用程序时,它甚至不会部署应用程序,从而导致java.lang.ClassCastException: org.slf4j.impl.Slf4jLoggerFactory cannot be cast to ch.qos.logback.classic.LoggerContext这是违规的代码行 final LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory(); 有他的class级是弹簧注入,这是失败的 – 因此整个应用程序不能部署。 任何人有解决这个问题? 提前致谢 在查看这个站点和其他论坛后,我意识到Jboss 7捆绑了它自己的slf4j实现,并实现了LoggerContext在logback中所使用的相同的ILoggerFactory接口。 我们的应用程序试图得到一个相同的实例,但应用程序服务器施加它自己的slf4j实现。 我试图修改jboss \ modules \ org \ slf4j \ impl \ main中的module.xml,并将其指向logback jar。 <resources> <resource-root path="logback-classic-0.9.28.jar"/> <resource-root path="logback-core-0.9.28.jar"/> </resources> 现在,当我启动应用程序,我得到一个严重的错误 Exception starting filter WicketFilter: java.lang.ClassCastException: ch.qos.logback.classic.LoggerContext cannot be cast to ch.qos.logback.classic.LoggerContext […]

JUL到SLF4J桥

我目前观察到第三方库(即restfb)正在使用java.util.logging,我看到这些日志最终在STDOUT,即使我没有在我的logback.xml中configuration的SLF4J控制台appender。 我的classpath中也有jul-to-slf4j桥。 jul-to-slf4j bridge是否只在日志logging到stdout的时候才loginlogbackconfiguration的appender?

从logbackconfiguration文件读取环境variables

我有这个logback.xml文件: <configuration debug="true" scan="true" scanPeriod="60 seconds"> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <layout class="ch.qos.logback.classic.PatternLayout"> <Pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} – %msg%n</Pattern> </layout> </appender> <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <File>${MY_HOME}/logs/mylog.log</File> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <FileNamePattern>logs/my.%d{yyyy-MM-dd}.log</FileNamePattern> <MaxHistory>30</MaxHistory> </rollingPolicy> <layout class="ch.qos.logback.classic.PatternLayout"> <Pattern>%d{HH:mm:ss.SSS} [%thread] %-5level – %msg%n</Pattern> </layout> </appender> <root level="TRACE"> <appender-ref ref="FILE"/> </root> </configuration> 而${MY_HOME}是一个已定义的系统variables(linux上的echo $MY_HOME显示了正确的path)。 事情是logback似乎没有正确读取,它将日志存储在MY_HOME_IS_UNDEFINED/logs/my.log 我究竟做错了什么? 非常感谢! 编辑:我犯了一个错误,把OSC_HOME我真正的意思是MY_HOME。 对于那个很抱歉

Log4j 2.0和SLF4J以及Java日志框架永无止境的未来

所以我今天刚刚发现Log4J 2.0现在正在积极开发中,有一个alpha版本,据说取代了logback。 现在在我的应用程序,我有接近4或许更多的日志框架: Java Util日志logging log4j的 SLF4J logback(忽略感谢提供黑客的maven) 公共日志logging(忽略感谢提供黑客的maven) 而tomcat有它自己的JULI适配器 我一直在使用log4j(1.2.x),坦率地说,我只是不需要更新的人的function ,但我最近试图切换到SLF4J,主要是因为我不想重写我复杂的log4jconfiguration文件到一个新的格式 (logback)。 现在我的问题是,我应该针对的是SLF4J是log4j 2.0未来的正确select。 似乎我应该坚持使用旧的log4j( 1.2.x ),因为它是最低的共同点? 更新:在进一步检查log4j 2.0而非常类似的情况下,它的configuration与log4j 1.2不兼容。 看起来像logback是最好的select。

为什么每次调用LoggerFactory.getLogger(…)都不推荐?

我已经阅读了大量的post和文档(在本站和其他地方),指出推荐的SFL4J日志logging模式是: public class MyClass { final static Logger logger = LoggerFactory.getLogger(MyClass.class); public void myMethod() { //do some stuff logger.debug("blah blah blah"); } } 我的老板更喜欢我们只是使用包装来拦截日志调用,并避免锅炉板代码在每个类上声明logging器: public class MyLoggerWrapper { public static void debug(Class clazz, String msg){ LoggerFactory.getLogger(clazz).debug(msg)); } } 并简单地使用它是这样的: public class MyClass { public void myMethod() { //do some stuff MyLoggerWrapper.debug(this.getClass(), "blah blah blah"); } […]

spring引导,logback和logging.config属性

我使用logback库实现了一个Spring启动项目的日志logging。 我想根据我的弹簧configuration文件(属性“spring.pofiles.active”)加载不同的日志loggingconfiguration文件。 我有3个文件:logback-dev.xml,logback-inte.xml和logback-prod.xml。 我正在使用弹簧启动版本1.2.2.RELEASE。 正如你可以在春季启动文档( 这里 )阅读。 它说: 可以通过在类path中包含适当的库来激活各种日志logging系统,并且可以通过在类path的根目录中或在Spring环境属性logging.config中指定的位置提供合适的configuration文件来进一步进行定制。 (注意,由于在创buildApplicationContext之前对日志进行了初始化,所以在Spring @Configuration文件中无法控制从@PropertySources进行的日志logging,系统属性和传统的Spring Boot外部configuration文件可以正常工作。 所以我试图在我的application.properties文件中设置“logging.config”属性: logging.config=classpath:/logback-${spring.profiles.active}.xml 但是,当我开始我的应用程序,我的logback- {configuration文件} .xml不加载… 我认为日志logging是所有使用spring boot的项目遇到的常见问题。 我想知道我是否在正确的方向,因为我也有其他的解决scheme,但我觉得他们不优雅(条件parsing与Janino在logback.xml文件或命令行属性)。

如何禁用标准输出弹簧启动标志?

有没有一种方法来禁用可爱的,但非常明显的ASCII春季启动标志: . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, […]

如何在启动时在logback中滚动日志文件

我想configurationlogback来执行以下操作。 login到文件 当文件达到50MB时滚动文件 只保留7天的价值的日志 在启动时总是生成一个新的文件(做一个滚动) 除了最后一个项目,启动卷,我已经工作了。 有谁知道如何做到这一点? 这是configuration… <appender name="File" class="ch.qos.logback.core.rolling.RollingFileAppender"> <layout class="ch.qos.logback.classic.PatternLayout"> <Pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} – %msg \(%file:%line\)%n</Pattern> </layout> <File>server.log</File> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <FileNamePattern>server.%d{yyyy-MM-dd}.log</FileNamePattern> <!– keep 7 days' worth of history –> <MaxHistory>7</MaxHistory> <TimeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <MaxFileSize>50MB</MaxFileSize> </TimeBasedFileNamingAndTriggeringPolicy> </rollingPolicy> </appender>

以编程方式configurationLogBack appender

我有一个在logback.xml中定义的logback appender,它是一个数据库appender,但是我很好奇,是否有任何方法来使用我自己的连接池定义为一个bean在java中configurationappender。 我发现类似的东西,但从来没有真正的答案。