当前位置: 首页 > 面试题库 >

在Maven Jetty 7插件中启用调试日志记录

濮阳研
2023-03-14
问题内容

我正在mvn jetty:run使用最新的jetty插件通过简单的Java运行webapp
,但似乎无法找到一种方法来告诉jetty将DEBUG消息输出到控制台(对于嵌入式jetty实例,而不是插件本身)。当前仅输出WARN和INFO消息。我尝试设置-DDEBUG-DVERBOSE,但是他们什么也没做。我已经看过文档了,但是似乎没有涵盖。


问题答案:

更新: 好的,我终于把事情做好了,这就是我所做的。

我的理解是,由于Jetty 7使用JSP 2.1引擎,所以即使对于JSP引擎,Jetty
7也不依赖于特定的日志记录框架。因此,您可以使用任何日志记录框架。在这里,我将使用logback。

首先logback-classic在插件中添加依赖项,并将logback.configurationFile系统属性设置为指向配置文件:

<project>
  ...
  <build>
    ...
    <plugins>
      <plugin>
        <groupId>org.mortbay.jetty</groupId>
        <artifactId>jetty-maven-plugin</artifactId>
        <version>7.0.0.pre5</version>
        <configuration>
          <systemProperties>
            <systemProperty>
              <name>logback.configurationFile</name>
              <value>./src/etc/logback.xml</value>
            </systemProperty>
          </systemProperties>
        </configuration>
        <dependencies>
          <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>0.9.15</version>
          </dependency>
        </dependencies>
      </plugin>
      ...
    </plugins>
  </build>
  ...
</project>

然后添加一个src/etc/logback.xml配置文件。下面是最小配置:

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

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

使用此设置,jetty将输出DEBUG消息:

$ mvn码头:运行
...
00:31:33.089 [main]调试org.mortbay.log-启动DefaultHandler @ 145e5a6
00:31:33.089 [main]调试org.mortbay.log-已启动DefaultHandler @ 145e5a6
00:31:33.105 [main]调试org.mortbay.log-开始RequestLogHandler @ 1e80761
00:31:33.106 [main]调试org.mortbay.log-已启动RequestLogHandler @ 1e80761
00:31:33.106 [main]调试org.mortbay.log-启动HandlerCollection @ 1485542
00:31:33.106 [main]调试org.mortbay.log-启动HandlerCollection @ 1485542
00:31:33.106 [main]调试org.mortbay.log-开始org.mortbay.jetty.Server@a010ba
00:31:33.174 [main]调试org.mortbay.log-开始org.mortbay.jetty.nio.SelectChannelConnector$1@ee21f5
00:31:33.216 [main] INFO org.mortbay.log-已启动SelectChannelConnector@0.0.0.0:8080
00:31:33.217 [main]调试org.mortbay.log-已启动SelectChannelConnector@0.0.0.0:8080
00:31:33.217 [main]调试org.mortbay.log-开始org.mortbay.jetty.Server@a010ba
[INFO]启动了Jetty服务器

资源:

  • 在Maven的码头插件页面
  • 所述[M2] jetty6插件&log4j的消息/线程
  • Logback文档中的第3章:Logback配置


 类似资料:
  • 一般来说,你应该在运行时增加调试选项来调试问题;也可以把调试选项添加到 Ceph 配置文件里来调试启动问题,然后查看 /var/log/ceph (默认位置)下的日志文件。 Tip 调试输出会拖慢系统,这种延时有可能掩盖竞争条件。 日志记录是资源密集任务。如果你碰到的问题在集群的某个特定区域,只启用那个区域对应的日志功能即可。例如,你的 OSD 运行良好、元数据服务器却不行,这时应该先打开那个可疑

  • 我正在为日志创建一个Spring Bootjar。我在我的主要spring boot项目中添加了这个依赖项。我可以在主项目的控制台中获取日志。但是没有登录到文件中。 我在文件中添加了以下application.yml 谁能帮我一下吗。提前谢谢!

  • 我试图在Jetty实例中设置日志级别为DEBUG。当我们在属性文件下添加-Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog-Dorg.eclipse.jetty.LEVEL=DEBUG并将其传递给JVM时,它正在工作。我的用例是,我试图从用户界面设置日志级别,以便在不重启服务器的情况下,我们可以切换日志级别

  • 我试图熟悉docker生态系统,并尝试设置mysql数据库容器。使用这看起来像: 我的conf目录包含一个文件: 不幸的是,我没有这样得到任何日志文件。设置本身是正确的,并且使用了cnf文件。连接到容器并创建3个文件后,将它们添加到并重新启动容器,日志记录按预期工作。 我很确定这是一个常见的场景,我目前让它运行的方法看起来真的很愚蠢。正确的做法是什么? 我可以通过在Dockerfile中移动所有这

  • 问题内容: 我在Spring 3.5容器中将JpaTransactionManager与hibernate3一起使用。我无法为JPA启用日志记录。我希望看到用于调试我的某些服务的事务管理日志。我正在使用log4j。 这是我的log4j.properties中的内容 问题答案: 在启用JPATransactionManager的日志记录方面,这对我有用:1.下载logback jar(logback

  • Web-INF中的jboss-deployment-structure.xml: 和log4j.xml设置(在war中位于“web-inf/classes/log4j.xml”中):