以下測試環境為 RHEL5、tomcat 6.0.39
官網說明
If the
value of this flag is
true
, the bytes output to System.out and System.err
by the web application will be redirected to the web application logger. If not
specified, the default value of the flag is false
.
設定
tomcat/conf/context.cml
<Context
swallowOutput="true">
……………………………………
</Context>
二、第一種方法,設定 log4j
1.
在
tomcat/lib/ 下建立 log4j.properties,以下為範例檔
##############################################################
#定義logger,名字這邊可自訂,第一個為輸出層級,為了讓log分開輸出,這邊只定義輸出層級
log4j.rootLogger=INFO, CATALINA
#定義每個appender的路徑與作用,名稱為剛定義的logger,參數請參考log4j官方文件
log4j.appender.CATALINA=org.apache.log4j.FileAppender
log4j.appender.CATALINA.File=${catalina.base}/logs/catalina.out
log4j.appender.CATALINA.Append=true
log4j.appender.CATALINA.Encoding=UTF-8
log4j.appender.CATALINA.layout =
org.apache.log4j.PatternLayout
log4j.appender.CATALINA.layout.ConversionPattern = %d
[%t] %-5p %c- %m%n
log4j.appender.S=org.apache.log4j.FileAppender
log4j.appender.S.File=${catalina.base}/logs/webapps1.out
log4j.appender.S.Append=true
log4j.appender.S.Encoding=UTF-8
log4j.appender.S.layout =
org.apache.log4j.PatternLayout
log4j.appender.S.layout.ConversionPattern = %d [%t]
%-5p %c- %m%n
log4j.appender.R=org.apache.log4j.FileAppender
log4j.appender.R.File=${catalina.base}/logs/webapps2.out
log4j.appender.R.Append=true
log4j.appender.R.Encoding=UTF-8
log4j.appender.R.layout =
org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern = %d [%t]
%-5p %c- %m%n
log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost]=INFO,
S
log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[jacky.com]=INFO,
R
#設定tocmat host綁定logger, hosts為tomcat server.xml 內host名稱,
#這邊為 localhost綁定CATALINA logger名稱, jacky.com 綁定 R logger名稱
log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost]=INFO,S
log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[jacky.com]=INFO,R
###################################################################
2.
下載 log4j ,將log4j-1.2.17.jar 放到 tomcat/lib/ 內
3.
下載
tomcat-juli.jar
、 tomcat-juli-adapters.jar
放到
tomcat/lib/ 內
4.
設定全域log4j
將剛下載的tomcat-juli.jar 取代
tomcat/bin/tomcat-juli.jar
5.
刪除 tomcat/conf/logging.properties 避免內建java.util.logging 產生log
6.
啟動tomcat
三、第二種方法,利用tomcat 內建logging.properties
1.
修改 tomcat/conf/logging.properties
####################################################################
#建立handlers,前綴名可自訂,但前面一定是數字開頭,
handlers =
1catalina.org.apache.juli.FileHandler, 2localhost.org.apache.juli.FileHandler,
3jacky.org.apache.juli.FileHandler
.handlers =
1catalina.org.apache.juli.FileHandler
#設定每個handlers 層級與路徑
1catalina.org.apache.juli.FileHandler.level
= FINE
1catalina.org.apache.juli.FileHandler.directory
= ${catalina.base}/logs
1catalina.org.apache.juli.FileHandler.rotatable
= false
1catalina.org.apache.juli.FileHandler.prefix
= catalina
1catalina.org.apache.juli.FileHandler.suffix
= .out
2localhost.org.apache.juli.FileHandler.level
= FINE
2localhost.org.apache.juli.FileHandler.directory
= ${catalina.base}/logs
2localhost.org.apache.juli.FileHandler.rotatable
= false
2localhost.org.apache.juli.FileHandler.prefix
= webapps1
2localhost.org.apache.juli.FileHandler.suffix
= .out
3jacky.org.apache.juli.FileHandler.level
= FINE
3jacky.org.apache.juli.FileHandler.directory
= ${catalina.base}/logs
3jacky.org.apache.juli.FileHandler.rotatable
= false
3jacky.org.apache.juli.FileHandler.prefix
= webapps2
3jacky.org.apache.juli.FileHandler.suffix
= .out
#綁定handler到 tomcat host
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].[jacky.com].level
= INFO
org.apache.catalina.core.ContainerBase.[Catalina].[jacky.com].handlers
= 3jacky.org.apache.juli.FileHandler
#############################################################################
2. tomcat啟動會讀tomcat/conf/logging.properties設定,如果檔案不可讀或未設定,則預設變為$JAVA_HOME/lib/logging.properties
3. tocmat 會從 tomcat/bin/startup.sh 起動catalina.sh,所以java參數及變數要寫在tomcat/bin/catalina.sh,啟動才會生效
沒有留言:
張貼留言