当涉及到在web应用程序中实现日志时,SLF4J + Logback似乎是一个明智的选择。然而,在谷歌上搜索如何实现它之后,我可以看到它主要用于Maven项目中,并且需要一个pom.xml文件。我的是一个非Maven项目,没有pom.xml文件。我仍然可以实现SLF4J +登录日志吗?如何实现?
发布于 2015-02-03 22:17:20
Maven只管理依赖项、编译等。您仍然可以使用slf4j和logback,但您必须手动(除非使用其他构建工具,如ant或sbt)指定类路径,以便在编译和运行时通过-cp包含相关的jars。
发布于 2015-02-03 23:56:21
正确的说,这个组合也可以用在非maven java项目中。
Pl将下面的jars和logback.xml放在类路径中:
我的logback.xml中的示例XML
<?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测试代码:
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 !!!");
}
}输出:
#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 !!!希望这能帮到你。干杯!
https://stackoverflow.com/questions/28301021
复制相似问题