我刚开始使用jetty-maven-plugin。
我发现了一些关于日志和系统输出的奇怪行为。
当我用maven开始码头时
mvn -Djetty.port=8093 -Dlog4j.configuration=file:src/log4j.properties jetty:run
我看到bean构造函数sysout消息。
之后,当我请求网址http://my.local.host:8093/api/rest/admin/houses时,浏览器会向我显示正确的页面,但与控制台或日志文件中的 house!没有任何相似之处。
Hovewer,来自Jetty,Spring等的其他一些INFO消息也会在那里打印出来。
@Controller
public class AppAdminClientJsonController {
private final static Logger logger =
LoggerFactory.getLogger(AppAdminClientJsonController.class);
public AppAdminClientJsonController() {
System.out.println("----------AppAdminClientJsonController----------");
}
@RequestMapping(value = "/admin/houses", method = RequestMethod.GET)
public @ResponseBody
List<House> getHouses() {
logger.warn("house!");
System.out.println("house!!");
return Arrays.asList(new House("somesite", "http://somesite.com"));
}
}
因此,Jetty通常不尊重我的记录器,并以某种时髦的方式覆盖系统输出,因此在服务器启动并运行后不会打印任何内容。
这可以是什么?
插件在pom.xml中的部分
<plugin>
<!-- http://wiki.eclipse.org/Jetty/Feature/Jetty_Maven_Plugin#Quick_Start:_Get_Up_and_Running -->
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>8.1.8.v20121106</version>
<configuration>
<webAppSourceDirectory>${basedir}/${webappRootPath}</webAppSourceDirectory>
<scanIntervalSeconds>10</scanIntervalSeconds>
<webAppConfig>
<contextPath>/</contextPath>
<descriptor>${basedir}/${webappRootPath}/WEB-INF/web.xml</descriptor>
</webAppConfig>
</configuration>
</plugin>
更新
我刚刚尝试打印System.out对象本身。我是对的,Jetty超越了它:
在春季初始阶段,它是:java.io.PrintStream@175390b7
服务器启动后,它变为:java.io.PrintStream@9c783fc
答案 0 :(得分:1)
Jetty不会登录到log4j。
它有自己的记录器框架(偶然在log4j之前)。
默认情况下,它将使用自己的记录器框架注销System.err。
此外,jetty的默认启动配置包括etc/jetty-logging.xml
,它将所有System.out和System.err路由到滚动日志文件。
但是,如果在类路径中存在,则跳码日志框架将使用slf4j。
如果要登录log4j,则需要通过slf4j进行操作。 要启用此功能,您需要在jetty-maven-plugin配置的依赖项中存在以下依赖项...
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>***your preferred version here***</version>
</dependency>
slf4j-log4j12的版本可用:http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22org.slf4j%22%20AND%20a%3A%22slf4j-log4j12%22