标签: logback

在Spring OSGI中使用pax-runner登录

我们正在使用pax-runner 运行OSGI捆绑软件。我们正在通过slf4j使用logback进行日志记录。

问题是logback试图在类路径中查找logback.xml,但是在pax-runner中应该将logback.xml放在哪里,以便pax-runner相应地配置logback?

我曾尝试使用JoranConfigurator加载包类路径中包含的logback.xml,但它假定类路径为包在其中运行的容器(在我的情况下,它是放置所有包罐的Runner文件夹)。

任何帮助,将不胜感激。

非常感谢。

osgi logback pax-runner

2
推荐指数
1
解决办法
780
查看次数

log4j + commons-logging迁移到Logback

我们在当前项目中使用log4j + commons-logging.现在我们从log4j的到的logback mirgrating,所以我们只使用替换log4j.properties用logback.xml或我们必须转换到log4j的SLF4J?

logging log4j runtime logback slf4j

2
推荐指数
1
解决办法
1311
查看次数

tomcat上的日志配置

我在tomcat上使用Logback(7.0.37).我想配置logback,它可以为我编写Web可访问的日志文件,但我甚至可以将其配置为在控制台上写入.我无法在控制台上格式化日志消息.它总是以默认格式和异常返回给我.

%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n

这是我的logback-access.xml:

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="true">
    <statusListener class="ch.qos.logback.core.status.OnConsoleStatusListener" />

    <appender name="RootFileAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>testing</file>
        <append>true</append>

        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
            <fileNamePattern>testing.%i</fileNamePattern>
            <minIndex>1</minIndex>
            <maxIndex>12</maxIndex>
        </rollingPolicy>

        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
            <maxFileSize>1MB</maxFileSize>
        </triggeringPolicy>

        <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
            <layout class="ch.qos.logback.classic.html.HTMLLayout">
              <pattern>%d{yyyy-MM-dd HH:mm:ss} %m%n</pattern>
            </layout>
        </encoder>
    </appender>

    <appender name="RootConsoleAppender" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%d{yyyy-MM-dd HH:mm:ss} %-6level- %logger{36}: %msg%n</pattern>
        </encoder>
    </appender>

    <appender-ref ref="RootFileAppender"/>
    <appender-ref ref="RootConsoleAppender"/>
</configuration>
Run Code Online (Sandbox Code Playgroud)

使用此配置,每当有对我的服务器的http请求时,我都会收到异常,如下所示:

18:08:19,951 |-ERROR in ch.qos.logback.core.ConsoleAppender[RootConsoleAppender] - Appender [RootConsoleAppender] failed to append. java.lang.ClassCastException: ch.qos.logback.access.spi.AccessEvent cannot be cast to ch.qos.logback.classic.spi.ILoggingEvent
    at java.lang.ClassCastException: ch.qos.logback.access.spi.AccessEvent cannot …
Run Code Online (Sandbox Code Playgroud)

java tomcat logback

2
推荐指数
1
解决办法
6897
查看次数

logback asyncAppender似乎不是线程安全的

我在其中添加了自己的SUMMARY_APPENDER,创建了一个AsyncAppender.

ASYNC Appender如下

 <appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
 <discardingThreshold>2</discardingThreshold>
 <appender-ref ref="SUMMARY_APPENDER" />
 <!--   <appender-ref ref="PROCESSING" /> -->
 </appender>
Run Code Online (Sandbox Code Playgroud)

我创建了另一个SUMMARY_APPENDER

<appender name="SUMMARY_APPENDER"
    class="com.my.test.logger.async.MyRollingAppender">
    <file>./logs/summary.log</file>
    <rollingPolicy class="com.my.test.logger.async.MyTimeBasedRollingPolicy">
        <!-- daily rollover -->
        <fileNamePattern>./logs/%d{yyyy-MM-dd,aux}/summary.%d{yyyy-MM-dd}.%i.log
        </fileNamePattern>
        <TimeBasedFileNamingAndTriggeringPolicy
            class="com.my.test.logger.async.MySizeTimeBasedPolicy">
            <maxFileSize>10MB</maxFileSize>
        </TimeBasedFileNamingAndTriggeringPolicy>
        <!-- keep 30 days' worth of history -->
        <maxHistory>30</maxHistory>
    </rollingPolicy>
    <encoder>
        <pattern>
            %d{ISO8601} [%t] %p %c %L - %m%n
        </pattern>
    </encoder>
</appender>
Run Code Online (Sandbox Code Playgroud)

RollingPolicy由我的Custom Appenders正确扩展.

  • 我已将其导出为带有logback.xml的自定义jar.

  • 我将它添加到新java项目的classpath中.

  • 运行一些并发程序进行日志记录,以确保所有线程同时正确地记录它.

程序如下,我创建了TestLogger1,2 ... 5并运行它们.

 public class TestingLogger {
 private static Logger log = LoggerFactory.getLogger(TestingLogger.class);
   public static void main(String[] args) {
    LoggerContext …
Run Code Online (Sandbox Code Playgroud)

logging logback rollingfileappender appender log4j2

2
推荐指数
1
解决办法
5747
查看次数

从log4j转换后的回归模式异常

我目前正从log4j迁移到logback,并使用他们在logback主页中提供的转换器转换了我的log4j.properties文件.但我在我的模式上得到一些奇怪的错误,我无法弄清楚它要我做什么:

<?xml version="1.0" encoding="UTF-8"?>
<!-- For assistance related to logback-translator or configuration  -->
<!-- files in general, please contact the logback user mailing list -->
<!-- at http://www.qos.ch/mailman/listinfo/logback-user             -->
<!--                                                                -->
<!-- For professional support please see                            -->
<!--    http://www.qos.ch/shop/products/professionalSupport         --> 
<!--                                                                -->
<configuration>
<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
  <pattern>%d{ISO8601} [%p] [%C{1},%M(),%L] - %m%n</pattern>
</encoder>
</appender>
<appender name="R" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--See also http://logback.qos.ch/manual/appenders.html#RollingFileAppender-->
<File>/log/debug.log</File>
<encoder>
  <pattern>%d{ISO8601} %15.15t [%p] [%C{1},%M():%L] - %m%n</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
  <maxIndex>1</maxIndex>
  <FileNamePattern>/log/debug.log.%i</FileNamePattern>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
  <MaxFileSize>100KB</MaxFileSize>
</triggeringPolicy>
</appender> …
Run Code Online (Sandbox Code Playgroud)

java logging log4j logback slf4j

2
推荐指数
1
解决办法
6198
查看次数

处理所有异常

我用于logback记录Java应用程序。我如何使用以下方法处理我的应用程序中的所有异常logback

我的测试配置

    <appender name="exceptions" class="ch.qos.logback.core.FileAppender">
        <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
            <evaluator>
                <expression>java.lang.Exception.class.isInstance(throwable)</expression>
            </evaluator>
            <onMatch>ACCEPT</onMatch>
        </filter>
        <file>exceptions.log</file>
        <append>true</append>
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} %-5level %logger{36} - %msg%n</pattern>
            <immediateFlush>false</immediateFlush>
        </encoder>
    </appender>
Run Code Online (Sandbox Code Playgroud)

java logging logback

2
推荐指数
1
解决办法
952
查看次数

如何在spring-boot中配置tomcat访问日志的位置和名称?

我有一个spring-boot应用程序,在application.yml中具有以下配置

server:
contextPath: /rti
tomcat:
    access-log-enabled: true
    access-log-pattern: "%h %l %u %t \"%r\" %s %b %D"
    basedir: tomcat
Run Code Online (Sandbox Code Playgroud)

这会提示创建访问日志tomcat/logs/access_log.2015-02-12.txt.

我希望能够配置创建访问日志的位置和命名内容; 但经过多次搜索,我开始认为这是不可能的.有谁知道如何实现这一目标?

应用程序日志记录在logback.xml中使用logback和配置正常工作

tomcat logback spring-boot

2
推荐指数
2
解决办法
1万
查看次数

使用Logger的信息打印类名,方法名和行号()

我已经配置了logback文件来获取类名,方法名和行号.

 <pattern> %d{HH:mm:ss.SSS} [%thread] %-5level %class{36}.%M %L - %msg%n </pattern>
Run Code Online (Sandbox Code Playgroud)

我想在输入和现有方法时打印日志消息.我怎么能使用info()方法在类中做到这一点.我使用下面的代码.但它没有打印出我想要的东西.

我使用org.slf4j.Logger和Logback日志记录

LOG.info("Entering " + );
Run Code Online (Sandbox Code Playgroud)

这就是我得到的:

14:41:48.097 [main] INFO  c.a.j.orgchart.CsvPersonReader - Entering 
Run Code Online (Sandbox Code Playgroud)

我想打印这样的东西:

14:41:48.097 [main] INFO  c.a.j.orgchart.CsvPersonReader.[MethodName] [Linenumber] - Entering 
Run Code Online (Sandbox Code Playgroud)

java logging logback

2
推荐指数
1
解决办法
8422
查看次数

Spring Boot日志配置

有没有办法禁用Spring启动日志并仅使用logger.info或logger.debug语句打印我在程序中提供的日志.我的意思是我只想记录我在程序中给出的日志语句,而不是其他任何内容.我使用spring boot提供的默认日志系统.如果需要,我也可以更改为log4j或log4j2.使用spring-boot 1.2.7版.换句话说,就像logging.level.org.springframework一样,可以用来记录spring相关的日志,有没有像logging.level.applicationlevel那样单独获取应用程序(Java logger语句)日志的方法

logging spring logback spring-boot

2
推荐指数
1
解决办法
826
查看次数

如何以编程方式设置Spring Boot的日志记录级别?

我知道如何通过环境变量和应用程序属性设置日志级别.

有没有办法以编程方式设置它们?

我想为特定测试类(使用SpringJUnit4ClassRunner和@SpringApplicationConfiguration)设置日志级别,但不是所有测试类都设置日志级别,并且没有针对每个组合的单独属性文件.

我尝试定义一个非懒惰的bean PropertySource来为环境添加一个新的 ; 该方法被调用,但没有效果.

@Bean
@Lazy(false)
public PropertySource testProperties(ConfigurableEnvironment environment) {
  PropertySource properties = new MapPropertySource("testProperties", Collections.singletonMap(
      "logging.level.org.springframework.security", "DEBUG"
  ));

  environment.getPropertySources().addFirst(properties);
  return properties;
}
Run Code Online (Sandbox Code Playgroud)

java logback slf4j spring-boot

2
推荐指数
1
解决办法
3025
查看次数