标签: slf4j

Logback中的标记

所以我对Logback真的很新,并对如何实现某些内容提出疑问.

假设我有两个appender:我希望appender"a"接受只有1或2的标记,但我希望appender"b"接受只有1或3的标记.我应该使用什么类型的过滤器?这有什么事吗?

logging logback slf4j

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

如何为OSGI Bundle(Eclipse-Plugin)提供log4j.properties?

项目设置:

  1. 记录-1.0.jar
    • 包含一个使用slf4j/log4j的Logger.class
    • 取决于slf4j-api.jar,slf4j-log4j.jar,log4j.jar
  2. LoggingOSGI-1.0.jar
    • 包装日志记录项目
    • 包含一个Activator和MANIFEST.MF
    • lib /包含logging-1.0.jar,slf4j-api.jar,slf4j-log4j.jar,log4j.jar
    • 将来自lib /的jar添加到类路径中,并导出来自logging-1.0.jar的包
  3. SomeBundle-1.2.jar
    • 包含一个Activator和MANIFEST.MF
    • 依赖于LoggingOSGI-1.0.jar

从SomeBundle访问Logger类可以正常工作,但是日志记录项目找不到log4j.properties(log4j:WARN没有为logger找到appender).

问题:

  • 我在哪里放置log4j.properties?
  • 我有什么想法可以试试吗?(已经尝试过:不同的目录,Eclipse-Buddies,-Dlog4j.configuration作为VM参数)
  • 将是一个扩展点,它告诉日志记录项目log4j.properties的位置,一个很好的解决方案?

java osgi log4j eclipse-plugin slf4j

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

SLF4J:无法加载类"org.slf4j.impl.StaticLoggerBinder"

运行maven项目时,Eclipse Juno 4.2上出现此错误.

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)

我没有使用slf4j进行日志记录.其实我不使用任何记录.

我究竟做错了什么.?

我的pom.xml中唯一的依赖项

<dependencies>
   <dependency>
     <groupId>junit</groupId>
     <artifactId>junit</artifactId>
     <version>4.10</version>
     <scope>test</scope>
    </dependency>   
</dependencies>
Run Code Online (Sandbox Code Playgroud)

编辑:

mvn依赖:树

[INFO] \- junit:junit:jar:4.10:test
[INFO]    \- org.hamcrest:hamcrest-core:jar:1.1:test
Run Code Online (Sandbox Code Playgroud)

编辑2:

我创建了一个New Maven项目 - > maven-archetype-quickstart.之后,我运行干净安装和eclipse控制台显示上述错误.我甚至没有编写代码的任何部分.即使我删除了示例src java文件和示例测试java文件,它也会产生相同的错误.


编辑3:

我在Eclipse之外运行项目,没有错误指示.

eclipse logging slf4j

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

org.slf4j.helpers.NOPLoggerFactory无法转换为ch.qos.logback.classic.LoggerContext

在maven(m2e)中使用logback时,出现以下错误。环境:JBOSS 7.1.1,maven,eclipse。但是,如果我只是作为主类单独运行,它将很好地工作。我不知道为什么会收到此错误,任何人都可以帮助我解决此问题并找到解决方案。

错误

17:24:23,675 ERROR [stderr] java.lang.ClassCastException: org.slf4j.helpers.NOPLoggerFactory cannot be cast to ch.qos.logback.classic.LoggerContext 

17:24:23,681 ERROR [stderr] at com.zreflect.emyed.whiteboard.pubsub.EventLoggerAsync.logStart(EventLoggerAsync.java:116) 

17:24:23,683 ERROR [stderr] at com.zreflect.emyed.whiteboard.pubsub.EventLoggerAsync.onDisconnect(EventLoggerAsync.java:62) 

17:24:23,684 ERROR [stderr] at org.atmosphere.cpr.AtmosphereResourceImpl.onDisconnect(AtmosphereResourceImpl.java:817) 

17:24:23,686 ERROR [stderr] at org.atmosphere.cpr.AtmosphereResourceImpl.notifyListeners(AtmosphereResourceImpl.java:761) 

17:24:23,688 ERROR [stderr] at org.atmosphere.cpr.AtmosphereResourceImpl.notifyListeners(AtmosphereResourceImpl.java:742) 

17:24:23,690 ERROR [stderr] at org.atmosphere.cpr.AsynchronousProcessor.cancelled(AsynchronousProcessor.java:601) 

17:24:23,691 ERROR [stderr] at org.atmosphere.container.BlockingIOCometSupport.cancelled(BlockingIOCometSupport.java:172) 

17:24:23,693 ERROR [stderr] at org.atmosphere.cpr.AsynchronousProcessor$1.run(AsynchronousProcessor.java:119) 

17:24:23,694 ERROR [stderr] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) 

17:24:23,696 ERROR [stderr] at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317) 

17:24:23,698 ERROR [stderr] at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150) 

17:24:23,699 ERROR [stderr] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98) 

17:24:23,703 ERROR [stderr] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180) 

17:24:23,707 ERROR …
Run Code Online (Sandbox Code Playgroud)

logback slf4j jboss7.x

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

Hibernate 4.3显示SQL参数

我正在使用log4j2和slf4j以及hibernate 4.3.1.我在显示SQL查询的参数时遇到问题.我没有找到任何显示它们(SQL查询很好地显示但没有参数).这是我在persistence.xml中指定的内容:

<persistence version="2.1"
xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/persistence/persistence_2_1.xsd">
<persistence-unit name="xxxxx" transaction-type="RESOURCE_LOCAL">
    <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
    <properties>
        <property name="hibernate.archive.autodetection" value="class" />
        <property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider" />
        <property name="hibernate.hbm2ddl.auto" value="update" />
        <property name="hibernate.show_sql" value="true" />
        <property name="hibernate.format_sql" value="true"/>
        <property name="hibernate.use_sql_comments" value="true"/>
        <property name="hibernate.query.factory_class"
            value="org.hibernate.hql.internal.classic.ClassicQueryTranslatorFactory" />
        <property name="max_fetch_depth" value="2" />
        <property name="hibernate.jdbc.batch_size" value="100" />
    </properties>
</persistence-unit>
Run Code Online (Sandbox Code Playgroud)

我在log4j2.xml中定义了这个:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="DEBUG" verbose="true">
    <Appenders>
        <Console name="STDOUT" target="SYSTEM_OUT">
            <PatternLayout pattern="%m%n" />
        </Console>
        <File name="MyFile" fileName="test.log">
            <PatternLayout>
                <Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
            </PatternLayout>
        </File>
    </Appenders>
    <Loggers>
        <logger name="org.hibernate.SQL" level="DEBUG" …
Run Code Online (Sandbox Code Playgroud)

java logging hibernate slf4j log4j2

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

在slf4j中使用decimalformat或logback来填充或识别号码,使它们对齐

我在SLF4J中有这个日志语句(在它下面有Logback):

        logger.info("{} has {} depots, {00} vehicles and {} customers with a search space of {}.", ...);
Run Code Online (Sandbox Code Playgroud)

我得到这个输出:

A-n62-k8 has 1 depots, 8 vehicles and 61 customers with a search space of 10^108.
A-n63-k10 has 1 depots, 10 vehicles and 62 customers with a search space of 10^111.
Run Code Online (Sandbox Code Playgroud)

但我想要这个输出,它增加了额外的空间填充/缩进:

A-n62-k8  has 1 depots,  8 vehicles and 61 customers with a search space of 10^108.
A-n63-k10 has 1 depots, 10 vehicles and 62 customers with a search space of 10^111.
Run Code Online (Sandbox Code Playgroud)

这可能与SLF4J一起使用吗?

java logging logback slf4j

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

记录由记录器处理两次

我有一个要登录的Web应用程序。logging.properties文件提供了一些默认日志记录,我无法对其进行影响。它记录服务器的启动,关闭等信息。

这些是此类日志的示例(正常日志,此处没有错):

2016/01/22 12:25:10  INFO (ApplicationContext.java:671 [ServerService Thread Pool -- 64]) - Initializing Spring root WebApplicationContext
2016/01/22 12:25:13  INFO (ConfigureListener.java:202 [ServerService Thread Pool -- 64]) - Initializing Mojarra 2.1.28-jbossorg-6  for context '/MyServices'
2016/01/22 12:25:15  INFO (DeploymentHandlerUtil.java:137 [ServerService Thread Pool -- 28]) - JBAS015859: Deployed "MyServices.war" (runtime-name : "MyServices.war")
2016/01/22 12:25:15  INFO (BootstrapListener.java:93 [Controller Boot Thread]) - JBAS015874: JBoss EAP 6.4.0.GA (AS 7.5.0.Final-redhat-21) started in 27257ms - Started 485 of 520 services (63 services are lazy, passive or on-demand)
Run Code Online (Sandbox Code Playgroud)

现在,我还为自己的方法登录了应用程序,使用以下方法指定:

private …
Run Code Online (Sandbox Code Playgroud)

java log4j slf4j maven

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

将日期添加到logback.xml

曾尝试搜索它,但我一直在获取...IS_UNDEFINED文件名。我只想将当前日期附加到日志文件中。logback.xml文件的任何简单示例?

这是我最近的尝试:

<Properties>
  <property name="filePattern">log_${date:yyyy-MM-dd}.log</property>
</Properties>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
  <file>${application.home:-.}/logs/${filePattern}</file>
  <encoder>
    <pattern>%date [%level] from %logger in %thread - %message%n%xException</pattern>
  </encoder>
</appender>
Run Code Online (Sandbox Code Playgroud)

xml slf4j

5
推荐指数
2
解决办法
3677
查看次数

登录界面方法

到目前为止,我一直在研究Java 7,最近又转到了Java-8,令人惊讶的是您可以在Java-8接口中添加方法

到目前为止一切都很好。。。。

现在,我的问题是,这logging是任何开发中必不可少的部分,但是似乎lombok.extern.slf4j不允许您log通过接口方法添加内容,因为只允许在classes和上使用enums

您如何使用log接口方法(如果通过lombok是唯一方法?)?还是不应该记录接口方法?我在这里想念什么?

PS:目前我有工作System.out.println....是啊...这就是小白 :)

java logging slf4j java-8

5
推荐指数
3
解决办法
3137
查看次数

如何使用gradle的“排除”替换依赖项?

所以我想为JUnit测试禁用日志记录。

最简单的方法是将绑定从切换slf4j-simpleslf4j-nop

但是,我该怎么做呢?

我想exclude

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"

    implementation "com.android.support:appcompat-v7:$support_version"
    implementation 'com.android.support.constraint:constraint-layout:1.1.2'

    implementation "org.jetbrains.anko:anko-common:$anko_version"

    implementation "org.slf4j:slf4j-simple:1.6.1"
    testImplementation("org.slf4j:slf4j-nop:1.6.1"){
        exclude(group:'org.slf4j', module:'slf4j-simple')
    }
    implementation 'io.github.microutils:kotlin-logging:1.6.10'

    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}
Run Code Online (Sandbox Code Playgroud)

但这仍然导致

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/C:/Users/user1291/.gradle/caches/modules-2/files-2.1/org.slf4j/slf4j-nop/1.6.1/70249094d4e5653b6bdfea46f3a1a4165c1e1993/slf4j-nop-1.6.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/C:/Users/user1291/.gradle/caches/modules-2/files-2.1/org.slf4j/slf4j-simple/1.6.1/58e59bfb3e247097b8122243b3bfe0049c8cfae8/slf4j-simple-1.6.1.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.helpers.NOPLoggerFactory]
Run Code Online (Sandbox Code Playgroud)

还尝试了configurations

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar']) …
Run Code Online (Sandbox Code Playgroud)

java dependencies slf4j gradle kotlin

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