首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在非Maven Java项目中实现slf4j和logback

在非Maven Java项目中实现slf4j和logback
EN

Stack Overflow用户
提问于 2015-02-03 22:14:24
回答 2查看 1.9K关注 0票数 1

当涉及到在web应用程序中实现日志时,SLF4J + Logback似乎是一个明智的选择。然而,在谷歌上搜索如何实现它之后,我可以看到它主要用于Maven项目中,并且需要一个pom.xml文件。我的是一个非Maven项目,没有pom.xml文件。我仍然可以实现SLF4J +登录日志吗?如何实现?

EN

回答 2

Stack Overflow用户

发布于 2015-02-03 22:17:20

Maven只管理依赖项、编译等。您仍然可以使用slf4j和logback,但您必须手动(除非使用其他构建工具,如ant或sbt)指定类路径,以便在编译和运行时通过-cp包含相关的jars。

票数 2
EN

Stack Overflow用户

发布于 2015-02-03 23:56:21

正确的说,这个组合也可以用在非maven java项目中。

Pl将下面的jars和logback.xml放在类路径中:

  • logback-access-1.0.2.jar
  • logback-classic-1.0.2.jar
  • logback-core-1.0.2.jar
  • slf4j-api-1.6.4.jar

我的logback.xml中的示例XML

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<configuration>


    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <layout class="ch.qos.logback.classic.PatternLayout">
            <pattern>%d %5p [%file:%line]  - %m%n</pattern>
        </layout>
    </appender>

    <logger name="org.uamlog">
        <level value="INFO"/>
    </logger>
    <logger name="org.uamlog">
        <level value="WARN"/>
    </logger>
    <logger name="org.uamlog">
        <level value="ERROR"/>
    </logger>
    <logger name="org.uamlog">
        <level value="DEBUG"/>
    </logger>
    <logger name="org.uamlog">
        <level value="TRACE"/>
    </logger>
    <root>
        <level value="WARN"/>

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

        <appender-ref ref="CONSOLE"/>
    </root>
    <root>
        <level value="DEBUG"/>

        <appender-ref ref="CONSOLE"/>
    </root>
    <root>
        <level value="TRACE"/>

        <appender-ref ref="CONSOLE"/>
    </root>
</configuration>

我用Java编写的logback测试代码:

代码语言:javascript
复制
package checklogback;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class TestLog {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Logger logger = LoggerFactory.getLogger("myLogger");
        logger.debug("My first comment using logback !!!"); 

    }

}

输出:

代码语言:javascript
复制
#logback.classic pattern: %d %5p [%file:%line]  - %m%n
21:22:39,905 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.groovy]
21:22:39,905 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]
21:22:39,906 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback.xml] at
21:22:40,533 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - debug attribute not set
21:22:41,009 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.ConsoleAppender]
21:22:41,029 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [CONSOLE]
21:22:41,594 |-WARN in ch.qos.logback.core.ConsoleAppender[CONSOLE] - This appender no longer admits a layout as a sub-component, set an encoder instead.
21:22:41,594 |-WARN in ch.qos.logback.core.ConsoleAppender[CONSOLE] - To ensure compatibility, wrapping your layout in LayoutWrappingEncoder.
21:22:41,594 |-WARN in ch.qos.logback.core.ConsoleAppender[CONSOLE] - See also http://logback.qos.ch/codes.html#layoutInsteadOfEncoder for details
21:22:41,596 |-INFO in ch.qos.logback.classic.joran.action.LevelAction - org.uamlog level set to INFO
21:22:41,596 |-INFO in ch.qos.logback.classic.joran.action.LevelAction - org.uamlog level set to WARN
21:22:41,596 |-INFO in ch.qos.logback.classic.joran.action.LevelAction - org.uamlog level set to ERROR
21:22:41,597 |-INFO in ch.qos.logback.classic.joran.action.LevelAction - org.uamlog level set to DEBUG
21:22:41,597 |-INFO in ch.qos.logback.classic.joran.action.LevelAction - org.uamlog level set to TRACE
21:22:41,597 |-INFO in ch.qos.logback.classic.joran.action.LevelAction - ROOT level set to WARN
21:22:41,597 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [CONSOLE] to Logger[ROOT]
21:22:41,598 |-INFO in ch.qos.logback.classic.joran.action.LevelAction - ROOT level set to INFO
21:22:41,598 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [CONSOLE] to Logger[ROOT]
21:22:41,598 |-INFO in ch.qos.logback.classic.joran.action.LevelAction - ROOT level set to DEBUG
21:22:41,598 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [CONSOLE] to Logger[ROOT]
21:22:41,598 |-INFO in ch.qos.logback.classic.joran.action.LevelAction - ROOT level set to TRACE
21:22:41,599 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [CONSOLE] to Logger[ROOT]
21:22:41,599 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - End of configuration.
21:22:41,620 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@2fcac6db - Registering current configuration as safe fallback point

2015-02-03 21:22:41,703 DEBUG [TestLog.java:11]  - My first comment using logback !!!

希望这能帮到你。干杯!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28301021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档