一旦达到大小限制,我正在尝试将我的tomcat配置为翻转日志文件。我正在运行tomcat作为Windows服务,并将我的所有stdout重定向到catalina.log。这是我通过logging.properties配置来设置大小限制的方式。但它没有用。
logging.properties
handlers = 1catalina.org.apache.juli.FileHandler, 2localhost.org.apache.juli.FileHandler, 3manager.org.apache.juli.FileHandler, 4host-manager.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
.handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
############################################################
# Handler specific properties.
# Describes specific configuration info for Handlers.
############################################################
1catalina.org.apache.juli.FileHandler.level = FINE
1catalina.org.apache.juli.FileHandler.directory = e:/apache-tomcat/logs/server_111-1001
1catalina.org.apache.juli.FileHandler.prefix = catalina.
1catalina.org.apache.juli.FileHandler.limit = 100000 # size 100kb
1catalina.org.apache.juli.FileHandler.count = 5
2localhost.org.apache.juli.FileHandler.level = FINE
2localhost.org.apache.juli.FileHandler.directory = e:/apache-tomcat/logs/server_111-1001
2localhost.org.apache.juli.FileHandler.prefix = localhost.
3manager.org.apache.juli.FileHandler.level = FINE
3manager.org.apache.juli.FileHandler.directory = e:/apache-tomcat/logs/server_111-1001
3manager.org.apache.juli.FileHandler.prefix = manager.
4host-manager.org.apache.juli.FileHandler.level = FINE
4host-manager.org.apache.juli.FileHandler.directory = e:/apache-tomcat/logs/server_111-1001
4host-manager.org.apache.juli.FileHandler.prefix = host-manager.
java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
############################################################
# Facility specific properties.
# Provides extra control for each logger.
############################################################
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.apache.juli.FileHandler
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = 3manager.org.apache.juli.FileHandler
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].handlers = 4host-manager.org.apache.juli.FileHandler
# For example, set the com.xyz.foo logger to only log SEVERE
# messages:
#org.apache.catalina.startup.ContextConfig.level = FINE
#org.apache.catalina.startup.HostConfig.level = FINE
#org.apache.catalina.session.ManagerBase.level = FINE
#org.apache.catalina.core.AprLifecycleListener.level=FINE
但是1catalina.org.apache.juli.FileHandler.limit = 100000似乎无法正常工作
答案 0 :(得分:9)
org.apache.juli.FileHandler
不支持基于文件大小的轮播,并且没有您尝试设置的limit
和count
属性(see docs)。相反,您可以使用支持基于大小的旋转的标准Java java.util.logging.FileHandler。您应该在配置中更改以下行:
handlers = 1catalina.java.util.logging.FileHandler, 2localhost.org.apache.juli.FileHandler, 3manager.org.apache.juli.FileHandler, 4host-manager.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
.handlers = 1catalina.java.util.logging.FileHandler, java.util.logging.ConsoleHandler
另请注意,Java FileHandler
的配置与Tomcat FileHandler
1catalina.java.util.logging.FileHandler.level = FINEST
1catalina.java.util.logging.FileHandler.pattern = <your log dir>/catalina%g.log
1catalina.java.util.logging.FileHandler.limit = 100000
1catalina.java.util.logging.FileHandler.count = 5
1catalina.java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter
但是,我不确定将标准重定向到记录器写入的文件会很好,并帮助您实现您想要的。
答案 1 :(得分:1)
根据Official Tomcat 7 documentation:
公共类FileHandler扩展java.util.logging.Handler
将日志消息附加到名为的文件的Handler的实现 {prefix} {date} {suffix}在已配置的目录中。
可以使用以下配置属性:
directory - 创建日志文件的目录。如果路径不是绝对路径,则它相对于当前工作目录 申请。通常是Apache Tomcat配置文件 指定此属性的绝对路径,$ {catalina.base} / logs 默认值:日志
rotate - 如果为true,则日志文件将在午夜过后的第一次写入时旋转,文件名将为{prefix} {date} {suffix}, 其中日期是yyyy-MM-dd。如果为false,则不会旋转文件 文件名为{prefix} {suffix}。默认值:true
prefix - 日志文件名的前导部分。默认值:juli。
后缀 - 日志文件名的尾部。默认值:.log
bufferSize - 配置缓冲。值0使用系统默认缓冲(通常使用8K缓冲区)。值<&lt; 0 强制写入每个日志写入时刷新。值> 0使用a BufferedOutputStream具有已定义的值但请注意系统 默认缓冲也将被应用。默认值:-1
encoding - 日志文件使用的字符集。默认值:空字符串,表示使用系统默认字符集。
level - 此Handler的级别阈值。有关可能的级别,请参阅java.util.logging.Level类。默认值: ALL
filter - 此Handler的java.util.logging.Filter实现类名。默认值:未设置
formatter - 此Handler的java.util.logging.Formatter实现类名。默认值: java.util.logging.SimpleFormatter