[英]Log4j logs decreases application performance?
日志記錄是否會降低應用程 以及如何限制在日志文件中打印顯示標簽日志?
例如。 我的日志文件有以下日志
[2012-06-20 15:52:06,290] org.displaytag.tags.TableTag isFirstIteration 684 - [data] first iteration=true (row number=1)
[2012-06-20 15:52:06,290] org.displaytag.tags.TableTag isFirstIteration 684 - [data] first iteration=true (row number=1)
[2012-06-20 15:52:06,290] org.displaytag.tags.TableTag isFirstIteration 684 - [data] first iteration=true (row number=1)
[2012-06-20 15:52:06,290] org.displaytag.tags.TableTag isFirstIteration 684 - [data] first iteration=true (row number=1)
為什么以上是在日志文件中?
log.properties文件
# Log4j configuration file.
log4j.rootCategory=DEBUG, A1
# Available levels are DEBUG, INFO, WARN, ERROR, FATAL
#
# A1 is a ConsoleAppender
#
log4j.appender.A1 = org.apache.log4j.RollingFileAppender
log4j.appender.A1.File = C:/LogInfo/logfile.log
log4j.appender.A1.MaxFileSize = 100MB
log4j.appender.A1.MaxBackupIndex=50
log4j.appender.A1.layout = org.apache.log4j.PatternLayout
log4j.appender.A1.append = true
log4j.appender.A1.layout.ConversionPattern = [%d] %C %M %L - %m%n
log4j.appender.A1.Threshold = DEBUG
如何停止(org.displaytag.tags.TableTag)這些日志打印在日志文件中
日志記錄是否會降低應用程
是。 它的作用取決於許多因素; 見下文。
以及如何限制在日志文件中打印顯示標簽日志?
通過更改日志記錄屬性中的ConversionPattern
為什么以上是在日志文件中?
因為:
debug(String)
) 為了提高性能:
Logger.debug(...)
調用放在if
語句中,該語句檢查是否啟用了調試日志記錄。 這樣可以節省在不需要的情況下組裝日志消息的成本; 在log4j中,在記錄改進性能之前檢查isDebugEnabled嗎? 。 您還可以在Logger
級別限制日志Logger
...如log4j文檔中所述 。 事實上,該文檔回答了您提出的大多數問題,並且在日志記錄性能和日志記錄配置方面有很多詳細信息。
簡短回答:是的,它會降低應用程序性能,因為它會占用一些CPU周期和其他資源(內存等)。
另見這個問題: log4j性能
記錄可以是你cpu時間的30%或更多。 就抖動而言,它與GC延遲一樣大(且更經常)。
減少開銷的一種簡單方法是使用Pattern關閉記錄每條消息的位置。 在您的情況下,這是%C%M和%L,因為它必須采用堆棧跟蹤(entier堆棧)來獲取此信息。
是的他們這樣做。 這就是為什么你應該只記錄錯誤或必須絕對記錄的東西。 您還可以在調試通道中記錄有助於調試的信息,這樣就不會影響生產性能。
您可以像這樣限制垃圾日志。 將根記錄器設置為INFO,以便不會出現不必要的調試日志並填滿您的日志文件。
log4j.rootCategory=INFO, A1
如果您希望特定的類或包發出DEBUG日志,您可以這樣做。
log4j.logger.org.hibernate.event.def.DefaultLoadEventListener=DEBUG,A1
以上將從日志文件中的類DefaultLoadEventListener打印DEBUG級別日志以及其他INFO級別日志。
怎么樣?
log4j.category.org.displaytag.tags.TableTag=ERROR, A1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.