标签: logback

SLF4J Logger有时会清除控制台输出(不需要的)

我正在使用SLF4J + Logback将消息输出到eclipse IDE控制台.

Logger LOG = LoggerFactory.getLogger(MyClass.class);
LOG.debug("test");
Run Code Online (Sandbox Code Playgroud)

但有时整个控制台输出被清除,我看不到更旧的消息.这是足够的信息,以便你可以帮助我吗?

java eclipse console logback slf4j

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

如何在Windows上使用Tomcat 6设置Logback

我在我的Windows桌面上安装了tomcat6用于测试目的.目前没有任何内容添加到webapps文件夹,只是正常的tomcat启动.生成以下日志文​​件:

catalina.2011-12-24.log
host-manager.2011-12-24.log
jakarta_service_20111224.log
localhost.2011-12-24.log
manager.2011-12-24.log
stderr_20111224.log
stdout_20111224.log
Run Code Online (Sandbox Code Playgroud)

我的问题很简单,我希望在定义的大小限制的基础上滚动和压缩这些日志[包含stdout].

我已经阅读了有关使用已定义策略滚动和压缩文件的logback及其功能,但我无法让它对我有用.我在$ TOMCAT_HOME/lib目录中复制了以下jar:

logback-access-1.0.0.jar
logback-classic-1.0.0.jar
logback-core-1.0.0.jar
Run Code Online (Sandbox Code Playgroud)

一些网站建议也应添加这些库:

jul-to-slf4j-1.6.4.jar
slf4j-api-1.6.4.jar
Run Code Online (Sandbox Code Playgroud)

我尝试在$ TOMCAT_HOME/conf和$ TOMCAT_HOME/lib中复制logback.xml,但无法使其工作.

如果有人可以帮助我,我真的很感激,最好能为我提供一个logback.xml和jars/xml位置,这些文件应该被复制以使其工作.

PS我没有在tomcat中部署任何webapp,它只是基本的tomcat设置.

logback tomcat6 windows-7

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

logback.xml 在普通 Java 项目中被忽略

显然,我的 Java 项目中没有发生日志记录。logback.xml文件位于类路径中,但显然被忽略了。没有报告有关此文件的任何错误。

JAR 以下列方式附加(使用 Maven):

    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.0.13</version>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

以下消息出现在控制台中:

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:MYREPO/org/slf4j/slf4j-simple/1.7.5/slf4j-simple-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:MYREPO/ch/qos/logback/logback-classic/1.0.13/logback-classic-1.0.13.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 [org.slf4j.impl.SimpleLoggerFactory]
Run Code Online (Sandbox Code Playgroud)

显然,这两个 jar 都是由单个 Maven 条目引用的。

java logging logback slf4j

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

Logback配置忽略了我的日志记录级别

我正在越来越多地记录我的项目,而且我无法抑制我不想要的日志记录.

我正在使用我添加到我的POM安装的Logback.

<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>1.0.13</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

我的日志始终以这三行开头:

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Run Code Online (Sandbox Code Playgroud)

谷歌搜索表明这是Eclipse问题,而不是Logback配置问题,但我包括它以防万一我的谷歌搜索误导我.

这是我的logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration>

  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <layout class="ch.qos.logback.classic.PatternLayout">
      <Pattern>%d{HH:mm:ss.SSS} %-5level %logger{36} - %msg%n</Pattern>
    </layout>
  </appender>

  <logger name="com.my.project" level="TRACE"/>
  <logger name="o.a.cxf" level="INFO"/>
  <logger name="o.a.c" level="INFO"/>

  <root level="debug">
    <appender-ref ref="STDOUT" />
  </root>
</configuration>
Run Code Online (Sandbox Code Playgroud)

这是我日志的摘录

[INFO] 17:41:53.095 DEBUG o.a.c.t.h.HttpsURLConnectionFactory - The SSL_DH_anon_WITH_DES_CBC_SHA cipher suite is excluded by the filter.
[INFO] 17:41:53.095 DEBUG o.a.c.t.h.HttpsURLConnectionFactory …
Run Code Online (Sandbox Code Playgroud)

java logging logback

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

Logback-通过记录器设置阈值

我想为每个记录器配置日志行的速率限制(例如:每个记录器每分钟最多可以发送100条日志行)。

我有想法,是否应该使用新的简单过滤器(我认为TurboFilter不适合)?还是一个新的appender?过滤器听起来更合适,但是其他过滤器可以替代我的决定,这就是为什么我认为要使用appender实现它。

你有什么想法?

filter logback appender

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

使用 logback 和 logstash-logback 编码器自定义日志级别显示

我正在使用 logstash-logback-encoder 以 json 格式打印日志。

我的logback.xml样子如下:-

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="net.logstash.logback.encoder.LogstashEncoder">
            <includeContext>false</includeContext>
            <fieldNames>
                <timestamp>timestamp</timestamp>
                <version>[ignore]</version>
                <levelValue>[ignore]</levelValue>
            </fieldNames>
        </encoder>
    </appender>
    <appender name="stash"
        class="ch.qos.logback.core.rolling.RollingFileAppender">        
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>/tmp/SolrUpdater.%d{yyyy-MM-dd}.log
            </fileNamePattern>
            <maxHistory>7</maxHistory>
        </rollingPolicy>
        <encoder class="net.logstash.logback.encoder.LogstashEncoder">
            <includeContext>false</includeContext>
            <fieldNames>
                <timestamp>timestamp</timestamp>
                <version>[ignore]</version>
                <levelValue>[ignore]</levelValue>
            </fieldNames>
        </encoder>
    </appender>
    <root level="error">
        <appender-ref ref="CONSOLE" />
        <appender-ref ref="stash" />
    </root>
</configuration>
Run Code Online (Sandbox Code Playgroud)

有人可以让我知道如何level以小写形式显示所有内容error,而不是默认ERRORWARNaswarning吗?

更新- 我CustomLogLevelJsonProvider按照 Zakhar 的建议创建了一个:-

package com.jabong.discovery.importer.solrUpdater.log;

public class CustomLogLevelJsonProvider extends LogLevelJsonProvider { …
Run Code Online (Sandbox Code Playgroud)

java log4j logback logstash-logback-encoder

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

logback.xml文件未加载

我在Maven中创建了一个使用logback的测试webapp.这是我的logback.xml配置文件:

<configuration scan="true">

  <!-- For more information: http://logback.qos.ch/manual/configuration.html -->

  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <!-- encoders are assigned the type
         ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
    <encoder>
      <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
    </encoder>
  </appender>

  <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>D:/Oracle/user_projects/domains/base_domain/servers/AdminServer/logs/myapp.log</file>

    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
      <!-- daily rollover -->
      <fileNamePattern>D:/Oracle/user_projects/domains/base_domain/servers/AdminServer/logs/archive/myapp.%d{yyyy-MM-dd}.log</fileNamePattern>

      <!-- keep 31 days' worth of history -->
      <maxHistory>31</maxHistory>
    </rollingPolicy>

    <encoder>
      <pattern>%date [%level] [%thread] [%file:%line] %msg%n</pattern>
    </encoder>
  </appender>

  <root level="debug">
    <appender-ref ref="FILE" />
    <appender-ref ref="STDOUT" />
  </root>

</configuration>
Run Code Online (Sandbox Code Playgroud)

我已将此文件复制到两个src/main/resourcessrc/test/resources

当我跑步时mvn test,一切正常.测试日志消息将写入控制台以及myapp.log文件:

public class …
Run Code Online (Sandbox Code Playgroud)

java xml logback maven

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

Log4j 2性能:单线程控制台在Logback中的记录速度比Log4j 2快吗?

最近,我尝试了Log4j 2日志记录,并尝试将其性能与我本地Mac机器上的Logback进行比较.令人惊讶的是,我看到Logback在我的测试用例中表现更好.我希望Log4j 2比Log4j 2网站声称的Logback做得更好,所以我想检查一下我在使用Log4j 2时是否做错了.

为了测试,我使用了直接Log4j 2和Logback 而不使用SLF4J.此外,它ConsoleAppender用于两个日志框架,我测试的模式是:

<Pattern>%d{YYYY-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</Pattern>
Run Code Online (Sandbox Code Playgroud)

日志测试代码是:

logger.info("This is a bootstrap message");

long start = System.currentTimeMillis();
for (int i = 1; i <= 1000000; i++) {
    logger.info("Order={} successfully processed", "ABC123");
}
long end = System.currentTimeMillis();
logger.info("time taken to process={} ms", end - start);
Run Code Online (Sandbox Code Playgroud)

我为每个日志记录分别运行了10次测试,并尝试将平均时间用于处理.出乎意料的是,每次运行都会更好地执行logback.我尝试使用params禁用Log4j 2附带的默认GC日志记录:

-Dlog4j2.enable.threadlocals=false -Dlog4j2.enable.direct.encoders=false
Run Code Online (Sandbox Code Playgroud)

但我仍然没有看到有关logback的任何改进.任何人都可以确认我做的是否正确?

log4j 2配置:

<Configuration status="INFO" debug="false">
<Appenders>
    <Console name="Console" target="SYSTEM_OUT">
        <PatternLayout pattern="%d{YYYY-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n" />
    </Console>
</Appenders> …
Run Code Online (Sandbox Code Playgroud)

java logging log4j logback log4j2

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

LogBack-LogStash-在Logback中添加属性并将其发送到Logstash

我在SpringBoot应用程序中使用Logback和Logstash。

在logback.xml中,我有一个带有服务名称的属性,如下所示:

<configuration>

<include resource="org/springframework/boot/logging/logback/defaults.xml" />

<include resource="org/springframework/boot/logging/logback/console-appender.xml" />

<property name="spring.application.name" calue="service"/>

<appender name="stash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
    <destination>localhost:9600</destination>
    <encoder class="net.logstash.logback.encoder.LogstashEncoder"/>
</appender>

<root level="INFO">
    <appender-ref ref="CONSOLE" />
    <appender-ref ref="stash" />
</root>

</configuration>
Run Code Online (Sandbox Code Playgroud)

Logstash conf文件类似于:

input{ tcp{
        port=> 9600
        host=>logstash
    }
}

filter {
grok {
match => {
  "message" =>
  "^%{TIMESTAMP_ISO8601:timestamp}\s+%{LOGLEVEL:level}\s+%{NUMBER:pid}\s+---\s+\[\s*%{USERNAME:thread}\s*\]\s+%{JAVAFILE:class}\s*:\s*%{DATA:themessage}(?:\n+(?<stacktrace>(?:.|\r|\n)+))?$"
}
}
date {
match => [ "timestamp" , "yyyy-MM-dd HH:mm:ss.SSS" ]
}
 mutate {
remove_field => ["@version"]
add_field => {
  "appid" => "%{[path]}"
}
add_field => {
  "levell" => "level"
} …
Run Code Online (Sandbox Code Playgroud)

logback logstash spring-boot logstash-logback-encoder logstash-grok

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

Loggly logback appender 真的很慢

我正在使用 Loggly logback appender,详见他们的设置指南

<?xml version="1.0" encoding="UTF-8"?>
<configuration>

    <appender name="LOGGLY" class="ch.qos.logback.ext.loggly.LogglyAppender">
        <endpointUrl>https://logs-01.loggly.com/inputs/MY_TOKEN/tag/logback</endpointUrl>
        <pattern>%d{"ISO8601", UTC}  %p %t %c %M - %m%n</pattern>
    </appender>

    <root level="INFO">
        <appender-ref ref="LOGGLY" />
    </root>

</configuration>
Run Code Online (Sandbox Code Playgroud)

一切都按预期工作(日志出现在 Loggly 中),但速度非常慢,每条日志消息大约 1 秒。它几乎停止了我的应用程序。是否有我遗漏的性能调整?

logback loggly

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