泽西岛:LogginFeature记录在哪里?

时间:2018-07-27 07:55:01

标签: java rest jersey jax-rs

我在glassfish / grizzly网络服务器内部运行Jersey 2.23。 效果很好。

现在,我尝试启用LoggingFeture来记录对服务的任何访问。

 ResourceConfig rc = new ResourceConfig ();
 rc.packages (MyProg.class.getPackage ().getName ());
 rc.register (LoggingFeature.class);

 rc.property(LoggingFeature.LOGGING_FEATURE_LOGGER_LEVEL_SERVER, "INFO");
 rc.property(LoggingFeature.LOGGING_FEATURE_VERBOSITY_SERVER,
 LoggingFeature.Verbosity.HEADERS_ONLY);

 HttpServer hs = GrizzlyHttpServerFactory.createHttpServer (URI.create ("http://myserver"), rc);

我找不到任何新文件,该文件将日志放在我的应用程序目录或/ var / log中。

如果有人可以,请告诉我我的代码是否正确以及在哪里查看。 我希望有一个文件可以在该文件中放置对服务器的任何新请求的行(例如Apache的access.log)

谢谢!

2 个答案:

答案 0 :(得分:1)

LoggingFeature一旦使用Logger,就可以在logging.properties文件中配置日志记录。

答案 1 :(得分:0)

我正在使用Apaches Log4j(org.apache.log4j),但是Jersey需要java.util.logging。多数民众赞成在相似但不相同。

下一个代码将设置一个内联配置的记录器,该记录器适用于Jersey,并将每个请求的记录写入rest.log。

Logger restlog = Logger.getLogger ("restlog");
restlog.setLevel (Level.INFO);
restlog.addHandler (new FileHandler ("rest.log", 10 * 1000000, 1));
rc.property (LoggingFeature.LOGGING_FEATURE_LOGGER_LEVEL, "INFO");
rc.register (new LoggingFeature (restlog, LoggingFeature.Verbosity.HEADERS_ONLY));