配置web服务器(Tomcat)的日志打印规则,将日志写到指定的文件夹下命名的文件中
server.xml
记录访问tomcat的日志,请求时间和资源,状态码都有记录。
logging.properties
Catalina:它是tomcat自己的启动和暂停时的运行日志
Localhost:主要是应用初始化(listener, filter, servlet)未处理的异常最后被tomcat捕获而输出的日志,它也是包含tomcat的启动和暂停时的运行日志,但它没有catalina日志全,只是记录了部分日志。
Manager:应该和manager项目有关
Host-Manager:应该和manager项目有关
catalina.sh
这里包含tomcat运行自己输出的日志以及应用里向console输出的日志。
举例:如果tomcat启动异常了,应该去看那个日志呢?
其他
实际项目启动修改
# reset logging
sed -i -e "/prefix/ s/= .*\:/= /g" /app/apache-tomcat-7.0.63/conf/logging.properties
sed -i -e "/prefix/ s/=\".*\:/=\"/g" /app/apache-tomcat-7.0.63/conf/server.xml
# mark log file label
sed -i -e "/prefix/ s#= #= ${MARATHON_APP_ID/\//}\:$(hostname)\:#g" /app/apache-tomcat-7.0.63/conf/logging.properties
sed -i -e "/prefix/ s#=\"#=\"${MARATHON_APP_ID/\//}\:$(hostname)\:#g" /app/apache-tomcat-7.0.63/conf/server.xml# set catalina.out
export DATE1=`date "+.%Y-%m-%d"`
sed -i -e "/catalina\.out/ s/logs\/.*\:/logs\//g" /app/apache-tomcat-7.0.63/bin/catalina.sh
sed -i -e "s#catalina.out#${MARATHON_APP_ID/\//}\:${PORT0}\:catalina\.out${DATE1}\.log#g" /app/apache-tomcat-7.0.63/bin/catalina.sh
应用日志配置logback.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
<!-- 控制台输出 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
</encoder>
</appender>
<logger name="org.springframework.beans.TypeConverterDelegate" level="ERROR" additivity="false" />
<logger name="com.upc" level="TRACE" additivity="false">
<appender-ref ref="STDOUT"/>
</logger>
<logger name="com.upc.core" level="INFO" additivity="false">
<appender-ref ref="STDOUT"/>
</logger>
<logger name="test" level="INFO" additivity="false">
<appender-ref ref="STDOUT"/>
</logger>
<!-- 日志输出级别 -->
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration>