How to change log format of tomcat on the pleiades
Pleiades All in One (Eclipse) 上の Tomcat のログフォーマットの形式を変更する方法です。
Environment
- Windows 10
- Pleiades All in One 4.6
- Tomcat 8
- Java 8
Default output information
デフォルトでは下記の形式で出力されますが、backtrace が出力されず、情報量が少ないためサーブレット起動時のエラー解析などに支障があります。
java.util.logging.SimpleFormatter.format=%4$s: %5$s [%1$tc]%n
情報: Initializing ProtocolHandler ["http-nio-8080"] [水 2 28 12:07:54 JST 2018]
情報: Using a shared selector for servlet write/read [水 2 28 12:07:55 JST 2018]
情報: Initializing ProtocolHandler ["ajp-nio-8009"] [水 2 28 12:07:55 JST 2018]
情報: Using a shared selector for servlet write/read [水 2 28 12:07:55 JST 2018]
情報: Initialization processed in 496 ms [水 2 28 12:07:55 JST 2018]
情報: サービス Catalina を起動します [水 2 28 12:07:55 JST 2018]
情報: Starting Servlet Engine: Apache Tomcat/8.0.43 [水 2 28 12:07:55 JST 2018]
情報: Starting ProtocolHandler ["http-nio-8080"] [水 2 28 12:07:55 JST 2018]
情報: Starting ProtocolHandler ["ajp-nio-8009"] [水 2 28 12:07:55 JST 2018]
情報: Server startup in 242 ms [水 2 28 12:07:55 JST 2018]
When changing the Tomcat setting
logging.properties
ファイルを作成し、Tomcat の起動構成を変更します。
使用している Tomcat 単位での設定が可能です。
Add VM argument
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Djava.util.logging.config.file="${CATALINA_BASE}\conf\logging.properties"
${CATALINA_BASE}
の部分は、-Dcatalina.base
で指定しているパスで上書きしてください。
Create property file
上記で指定したパスに logging.properties
ファイルを作成します。
handlers = java.util.logging.ConsoleHandler
.level= INFO
java.util.logging.ConsoleHandler.level = INFO
java.util.logging.ConsoleHandler.formatter = org.apache.juli.OneLineFormatter
上記のフォーマッターでは、下記のようなログが出力されます。
28-Feb-2018 12:31:46.697 情報 [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
28-Feb-2018 12:31:46.798 情報 [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read
28-Feb-2018 12:31:46.798 情報 [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["ajp-nio-8009"]
28-Feb-2018 12:31:46.798 情報 [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read
28-Feb-2018 12:31:46.798 情報 [main] org.apache.catalina.startup.Catalina.load Initialization processed in 495 ms
28-Feb-2018 12:31:46.813 情報 [main] org.apache.catalina.core.StandardService.startInternal サービス Catalina を起動します
28-Feb-2018 12:31:46.813 情報 [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet Engine: Apache Tomcat/8.0.43
28-Feb-2018 12:31:46.998 情報 [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
28-Feb-2018 12:31:46.998 情報 [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-nio-8009"]
28-Feb-2018 12:31:46.998 情報 [main] org.apache.catalina.startup.Catalina.start Server startup in 202 ms
When changing the JRE setting
JRE 付属の logging.properties
ファイルを修正します。
使用している JRE 単位での設定が可能です。
Confirm runtime information
Tomcat のランタイム情報を確認し、使用している JRE のパスを確認します。
Change properties file
${JRE_HOME}/lib/logging.properties
を修正し、SimpleFormatter
のフォーマットを変更します。
#-----------------------------------------------------------
# Pleiades Custom: Enabled one line format.
#-----------------------------------------------------------
#java.util.logging.SimpleFormatter.format=%4$s: %5$s [%1$tc]%n
java.util.logging.SimpleFormatter.format=%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS.%1$tL %4$s %5$s (%2$s) [%3$s] %6$s%n
上記のフォーマッターでは、下記のようなログが出力されます。
2018-02-28 13:08:42.732 情報 Initializing ProtocolHandler ["http-nio-8080"] (org.apache.coyote.AbstractProtocol init) [org.apache.coyote.http11.Http11NioProtocol]
2018-02-28 13:08:42.817 情報 Using a shared selector for servlet write/read (org.apache.tomcat.util.net.NioSelectorPool getSharedSelector) [org.apache.tomcat.util.net.NioSelectorPool]
2018-02-28 13:08:42.832 情報 Initializing ProtocolHandler ["ajp-nio-8009"] (org.apache.coyote.AbstractProtocol init) [org.apache.coyote.ajp.AjpNioProtocol]
2018-02-28 13:08:42.832 情報 Using a shared selector for servlet write/read (org.apache.tomcat.util.net.NioSelectorPool getSharedSelector) [org.apache.tomcat.util.net.NioSelectorPool]
2018-02-28 13:08:42.832 情報 Initialization processed in 504 ms (org.apache.catalina.startup.Catalina load) [org.apache.catalina.startup.Catalina]
2018-02-28 13:08:42.848 情報 サービス Catalina を起動します (org.apache.catalina.core.StandardService startInternal) [org.apache.catalina.core.StandardService]
2018-02-28 13:08:42.848 情報 Starting Servlet Engine: Apache Tomcat/8.0.43 (org.apache.catalina.core.StandardEngine startInternal) [org.apache.catalina.core.StandardEngine]
2018-02-28 13:08:43.033 情報 Starting ProtocolHandler ["http-nio-8080"] (org.apache.coyote.AbstractProtocol start) [org.apache.coyote.http11.Http11NioProtocol]
2018-02-28 13:08:43.033 情報 Starting ProtocolHandler ["ajp-nio-8009"] (org.apache.coyote.AbstractProtocol start) [org.apache.coyote.ajp.AjpNioProtocol]
2018-02-28 13:08:43.033 情報 Server startup in 207 ms (org.apache.catalina.startup.Catalina start) [org.apache.catalina.startup.Catalina]