我在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)
谢谢!
答案 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));