0

我正在使用 log4j-gwt aud gwt 的远程日志记录。我按预期在控制台上记录了消息,但没有设法在我的物理 .log 文件上打印消息。

知道我该怎么做吗?

这是我的 log4j 属性文件(适用于所有非 gwt 相关消息):

# CONSOLE APPENDER CONFIG [common] ---------------------------------------------------------------
log4j.appender.CONSOLE_APPENDER=org.apache.log4j.ConsoleAppender
#log4j.appender.CONSOLE_APPENDER.layout=org.apache.log4j.SimpleLayout 
log4j.appender.CONSOLE_APPENDER.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE_APPENDER.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n

# ROOT LOGGER CONFIG ----------------------------------------------------------------------
log4j.rootLogger=DEBUG,ROOT_FILE_APPENDER 

log4j.appender.ROOT_FILE_APPENDER=org.apache.log4j.RollingFileAppender
log4j.appender.ROOT_FILE_APPENDER.File=C:/log/tbps_root.log
log4j.appender.ROOT_FILE_APPENDER.MaxFileSize=20480KB
log4j.appender.ROOT_FILE_APPENDER.MaxBackupIndex=5
log4j.appender.ROOT_FILE_APPENDER.layout=org.apache.log4j.PatternLayout
log4j.appender.ROOT_FILE_APPENDER.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n


# GWT -------------------------------------------------------------------------------------
#These are various unseccsful attemps...
log4j.logger.com.google.gwt.logging.server.RemoteLoggingServiceUtil=DEBUG,ROOT_FILE_APPENDER
log4j.logger.com.google.gwt.logging.server.RemoteServiceServlet=DEBUG,ROOT_FILE_APPENDER
log4j.logger.com.google.gwt.logging.server.simpleRemoteHandler=DEBUG,ROOT_FILE_APPENDER
log4j.logger.com.google.gwt.logging=DEBUG,ROOT_FILE_APPENDER
log4j.logger.com.google.gwt.logging.Logging=DEBUG,ROOT_FILE_APPENDER
log4j.logger.com.google.gwt.logging.server=DEBUG,ROOT_FILE_APPENDER
4

1 回答 1

1

GWT-log4j 和 GWT 的 RemoteLoggingService 使用不同的记录器,如此处所述。因此,您的 log4j 属性不会应用于 GWT 的远程记录器。

您可以实现自己的远程日志记录类,也可以使用 slf4j 来“桥接”两个记录器。

我最近将用户操作的日志添加到 GWT 应用程序中。我首先尝试将 GWT-log4j 与 RemoteLoggingService 结合使用,并遇到了同样的问题。在阅读了上面的链接之后,我创建了自己的记录器类——这特别好,因为我可以将数据对象传递给远程记录器,从而允许我序列化 GWT 应用程序的状态。这后来变得非常有用:)

于 2013-06-09T00:43:55.433 回答