您的位置:首页 > 运维架构 > Tomcat

tomcat 详解 三catalina.home和catalina.base

2017-01-16 21:06 399 查看
log4j.properties 
文件的配置内容如下:

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] -%m%n

# define an appender named file, which is set to be aRollingFileAppender

log4j.appender.filelog=org.apache.log4j.DailyRollingFileAppender

log4j.appender.filelog.File=${catalina.base}/logs/mysio.log

log4j.appender.filelog.layout=org.apache.log4j.PatternLayout

log4j.appender.filelog.layout.ConversionPattern=%-5p %d{yyyy-MM-ddHH:mm:ss,SSS} %C{1}:%M - %m%n

其中 ${catalina.base}  的说明如下:

catalina.homecatalina.[b]base[/b]这两个属性仅在你需要安装多个Tomcat实例而不想安装多个软件备份的时候使用,这样能节省磁盘空间。

Tomcat6.0为例,其Tomcat目录结构如下:

bin (运行脚本)

conf (配置文件)

lib (核心库文件)

logs (日志目录)

temp (临时目录)

webapps (自动装载的应用程序的目录)

work (JVM临时文件目录[java.io.tmpdir])

让我们看看这些目录那些可以被多个Tomcat实例公用,其实只有bin 和 lib 目录,其它目录conf、logs、temp、webapps和work每个Tomcat实例必须拥有其自己独立的备份。

明白了上述关系就容易理解catalina.home和catalina.base的用途了。

catalina.home指向公用信息的位置,就是bin和lib的父目录。

catalina.base指向每个Tomcat目录私有信息的位置,就是conf、logs、temp、webapps和work的父目录。

仅运行一个Tomcat实例时,这两个属性指向的位置是相同的。

引自:http://txy821.javaeye.com/blog/557584

logback常用配置:

<?xml version="1.0" encoding="UTF-8"?>

<configuration>

    <!--定义日志文件的存储地址 勿在LogBack的配置中使用相对路径-->

    <property name="LOG_HOME" value="${catalina.base}/logs"/>

    <property name="encoding" value="UTF-8"/>

    <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度;%M:%L是方法和行号;%msg是日志消息;%n是换行符-->

    <property name="normal-pattern"

              value="%d{yyyy-MM-dd.HH:mm:ss} %-5level [%thread] %logger{50}.%M:%L - %msg%n"/>

    <property name="plain-pattern" value="%d{yyyy-MM-dd.HH:mm:ss} %msg%n"/>

    <!-- 按照每天生成日志文件 -->

    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">

        <!--日志文件输出的文件名-->

        <file>${LOG_HOME}/nongfeng.log</file>

        <Append>true</Append>

        <prudent>false</prudent>

        <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>

        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

            <!--归档日志文件名-->

            <FileNamePattern>${LOG_HOME}/nongfeng.log.%d{yyyy-MM-dd}</FileNamePattern>

            <!--日志文件保留个数-->

            <maxHistory>72</maxHistory>

        </rollingPolicy>

    </appender>

    <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>

    <!-- log file error -->

    <appender name="nongfeng_error"

              class="ch.qos.logback.core.rolling.RollingFileAppender">

        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">

            <level>ERROR</level>

        </filter>

        <file>${LOG_HOME}/nongfeng_error.log</file>

        <prudent>false</prudent>

        <Append>true</Append>

        <encoder>

            <pattern>${normal-pattern}</pattern>

            <charset>${encoding}</charset>

        </encoder>

        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

            <fileNamePattern>${LOG_HOME}/nongfeng_error.log.%d{yyyy-MM-dd}</fileNamePattern>

            <maxHistory>30</maxHistory>

        </rollingPolicy>

    </appender>

    <!-- 日志输出级别 -->

    <root level="INFO">

        <appender-ref ref="FILE"/>

        <appender-ref ref="STDOUT"/>

        <appender-ref ref="nongfeng_error"/>

    </root>

</configuration>

root日志级别设置为info,大于他的日志级别都会被打印,日志级别优先级有

error>warn>info>debug
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  tomcat catalina.base