我正在使用Java Spark(web框架),并且正在遵循本教程:http://sparkjava.com/tutorials/jetty-request-log以启用日志记录。
但是下面的类给我一个错误:
constructor AbstractNCSARequestLog in class AbstractNCSARequestLog cannot be applied to given types;
return new AbstractNCSARequestLog() {
^
required: Writer
found: no arguments
相关课程:
public class RequestLogFactory {
private Logger logger;
public RequestLogFactory(Logger logger) {
this.logger = logger;
}
AbstractNCSARequestLog create() {
return new AbstractNCSARequestLog() {
@Override
protected boolean isEnabled() {
return true;
}
@Override
public void write(String s) throws IOException {
logger.info(s);
}
};
}
}
如果您要使用老式的NCSA请求日志格式,请使用Slf4jRequestLog
代替Slf4jRequestLog
(现已弃用)。
[如果您想使用现代的AbstractNCSARequestLog
技术,请将RequestLog
与CustomRequestLog
结合使用。 (额外的好处是可以自定义requestlog格式)
使用这些方法之一,您都需要将slf4j路由到log4j(通过在类路径中包含CustomRequestLog
)
然后,您现在可以在命名记录器上捕获您的请求日志(记录器名称可在Slf4jRequestLogWriter
中配置)
示例:
Slf4jRequestLogWriter