![](/img/trans.png)
[英]How to change the colour of log messages using javahome\logging.properties?
[英]How to add a unique tag to each log in logging.properties
我的標准配置Tomcat 8.5把日志拆分成
我的任務是為每個文件添加唯一的標簽:CatalinaTag、mngTag、localTag、hostMngTag
我試圖在 inte.net 上找到解決方案,但沒有成功。
我對 logging.properties 的看法是這樣的:
handlers = 1catalina.mypackage.CatalinaConsoleHandler, 2localhost.mypackage.LocalhostConsoleHandler, 3manager.mypackage.ManagerConsoleHandler, 4host-manager.mypackage.LocalhostConsoleHandler, java.util.logging.ConsoleHandler
.handlers = 1catalina.mypackage.CatalinaConsoleHandler, java.util.logging.ConsoleHandler
1catalina.mypackage.CatalinaConsoleHandler.directory = /.../logs
1catalina.mypackage.CatalinaConsoleHandler.prefix = catalina.
1catalina.mypackage.CatalinaConsoleHandler.formatter = mypackage.CatalinaFormatter
mypackage.CatalinaFormatter.format = [CatalinaTag %1$tF %1$tT] [%4$-7s] %5$s %n
2localhost.mypackage.LocalhostConsoleHandler.directory = /.../logs
2localhost.mypackage.LocalhostConsoleHandler.prefix = localhost.
2localhost.mypackage.LocalhostConsoleHandler.formatter =mypackage.LocalhostFormatter
mypackage.LocalhostFormatter.format = [localhostTag %1$tF %1$tT] [%4$-7s] %5$s %n
3manager.mypackage.ManagerConsoleHandler.directory = /.../logs
3manager.mypackage.ManagerConsoleHandler.prefix = manager.
3manager.mypackage.ManagerConsoleHandler.formatter =mypackage.ManagerFormatter
mypackage.ManagerFormatter.format = [manager %1$tF %1$tT] [%4$-7s] %5$s %n
4host-manager.mypackage.LocalhostConsoleHandler.directory = /.../logs
4host-manager.mypackage.LocalhostConsoleHandler.prefix = host-manager.
4host-manager.mypackage.LocalhostConsoleHandler.formatter =mypackage.HostManagerFormatter
mypackage.HostManagerFormatter.format = [manager %1$tF %1$tT] [%4$-7s] %5$s %n
############################################################
# 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.mypackage.LocalhostConsoleHandler
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = 3manager.mypackage.ManagerConsoleHandler
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].handlers = 4host-manager.mypackage.LocalhostConsoleHandler
這是 *ConsoleHandler 的示例
package mypackage;
import java.util.logging.ConsoleHandler;
public class CatalinaConsoleHandler extends ConsoleHandler {
}
這里有一個 *Formatter 的例子
package mypackage;
import java.util.logging.SimpleFormatter;
public class CatalinaFormatter extends SimpleFormatter {
}
但到目前為止,我做不到。 你知道為什么嗎?
感謝您的任何幫助!
如果您使用的是原始的java.util.logging
,那么多次子類化ConsoleHandler
(或者更確切地說是FileHandler
)和SimpleFormatter
的方法是正確的:JUL 只允許每個Handler
和Formatter
class 的一個實例。這種方法可行,但是您需要將mypackage.CatalinaConsoleHandler
和 company 添加到系統類加載器(參見 Tomcat 類加載器)。
然而,有一個更簡單的方法:Tomcat 有自己的 JUL 擴展(參見文檔),它允許您:
1catalina.
)。 帶前綴的屬性僅適用於特定的處理程序,而不帶前綴的屬性適用於所有處理程序。${...}
將替換為適當的 Java 系統屬性。 還有三個特殊屬性( classloader.serverName
、 classloader.hostName
和classloader.webappName
)分別解析引擎、主機和上下文的名稱。因此你可以使用:
# List of all handler names:
handlers = 1catalina.org.apache.juli.AsyncFileHandler, 2localhost.org.apache.juli.AsyncFileHandler
# Handlers attached to the root logger:
.handlers = 1catalina.org.apache.juli.AsyncFileHandler
# These properties apply to all handlers
org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
org.apache.juli.AsyncFileHandler.formatter = java.util.logging.SimpleFormatter
# These properties apply only to `1catalina.org.apache.juli.AsyncFileHandler`
1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina.
1catalina.java.util.logging.SimpleFormatter.format = [CatalinaTag %1$tF %1$tT] [%4$-7s] %5$s %n
# These properties apply only to `2localhost.org.apache.juli.AsyncFileHandler`
2localhost.org.apache.juli.AsyncFileHandler.prefix = localhost.
2localhost.java.util.logging.SimpleFormatter.format = [LocalhostTag %1$tF %1$tT] [%4$-7s] %5$s %n
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.