java - 如何让Jetty打印日志

标签 java maven-2 logging jetty slf4j

我的项目运行在 Wicket+Spring+JPA/Hibernate 上。当我使用以下命令运行它时:

mvn jetty:run

我希望jetty打印我在代码中创建的日志。例如,我实现了以下 DAO:

@Repository(value = "isinDao")
public class IsinDaoJpa implements IsinDao {

    @PersistenceContext
    private EntityManager em;

    private static Logger logger = LoggerFactory.getLogger(IsinDaoJpa.class);

    public Isin findById(Long id) {
        return em.find(Isin.class, id);
    }

    public List findAll() {
        Query query = em.createQuery("select e from Isin e");
        logger.info("DAO: All ISINs selected");
        return query.getResultList();
    }
}

如何让 Jetty 将此信息实时打印到命令行窗口中?

在 pom.xml 中,我有以下依赖项:

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.4.2</version>
</dependency>
<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.14</version>
</dependency>

最佳答案

由于您使用 SLF4-to-log4j 桥接器,因此需要在 log4j 配置中配置日志记录。

要使用 Spring 配置 log4j 日志记录,您需要将以下内容添加到 web.xml(在 ContextLoaderListener 之前):

<listener>
    <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>

然后在/WEB-INF/log4j.xml中配置log4j(您也可以使用传统的log4j.properties):

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
    <!-- Appenders -->
    <appender name="console" class="org.apache.log4j.ConsoleAppender">
        <param name="Target" value="System.out" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%-5p: %c\n\t%m%n" />
        </layout>
    </appender>

    <logger name="... your package ...">
        <level value="info" />
    </logger>
</log4j:configuration>

另请参阅:

关于java - 如何让Jetty打印日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3959645/

相关文章:

maven-2 - 如何在 Maven 项目中设置作者姓名?

java - 在 Maven 构建期间未找到外部 jar 中的类文件?

java - Arial字体的跨平台解决方案

java - 在 JBoss 7.5.0 上使用 REST 服务时,XML 文件处理不正确

java - 如何在 Android 设备上通过 libGDX 首选项正确保存游戏进度?

Maven 最佳实践

java - doNothing() 不适用于 Spring 中模拟的 @Autowired 字段

nginx - 如何读取nginx access.log?

asp.net - 登录 .NET

asp.net - 如何从 ASP.NET Core 中的 Controller 以外的其他类登录?