如何将log4j-gwt消息写入文件而不是控制台?

时间:2013-06-08 14:23:49

标签: gwt logging log4j

我正在使用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

1 个答案:

答案 0 :(得分:1)

GWT-log4j和GWT的RemoteLoggingService使用不同的记录器as described here。因此,您的log4j属性未应用于GWT的远程记录器。

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

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