openTSDB啟動之后,發現在日志目錄下只生成了日志空文件,並沒有寫入日志內容。查看日志配置文件logback.xml如下:
<?xml version="1.0" encoding="UTF-8"?> <configuration> <!--<jmxConfigurator/>--> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern> %d{ISO8601} %-5level [%thread] %logger{0}: %msg%n </pattern> </encoder> </appender> <!-- This appender is responsible for the /logs endpoint. It maintains MaxSize lines of the log file in memory. If you don't need the endpoint, disable this appender (by removing the line "<appender-ref ref="CYCLIC"/>" in the "root" section below) to save some cycles and memory. --> <appender name="CYCLIC" class="ch.qos.logback.core.read.CyclicBufferAppender"> <MaxSize>1024</MaxSize> </appender> <!-- Appender to write OpenTSDB data to a set of rotating log files --> <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>/var/log/opentsdb/opentsdb.log</file> <append>true</append> <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> <fileNamePattern>/home/y/logs/opentsdb2/opentsdb.log.%i</fileNamePattern> <minIndex>1</minIndex> <maxIndex>4</maxIndex> </rollingPolicy> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <maxFileSize>512MB</maxFileSize> </triggeringPolicy> <!-- encoders are assigned the type ch.qos.logback.classic.encoder.PatternLayoutEncoder by default --> <encoder> <pattern>%date{ISO8601} [%thread] %-5level [%logger{0}.%M] - %msg%n</pattern> </encoder> </appender> <!-- Appender for writing full and completed queries to a log file. To use it, make sure to set the "level" to "INFO" in QueryLog below. --> <appender name="QUERY_LOG" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>/var/log/opentsdb/queries.log</file> <append>true</append> <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> <fileNamePattern>/var/log/opentsdb/queries.log.%i</fileNamePattern> <minIndex>1</minIndex> <maxIndex>4</maxIndex> </rollingPolicy> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <maxFileSize>128MB</maxFileSize> </triggeringPolicy> <encoder> <pattern>%date{ISO8601} [%logger.%M] %msg%n</pattern> </encoder> </appender> <!-- Per class logger levels --> <logger name="QueryLog" level="INFO" additivity="false"> <appender-ref ref="QUERY_LOG"/> </logger> <logger name="org.apache.zookeeper" level="INFO"/> <logger name="org.hbase.async" level="INFO"/> <logger name="com.stumbleupon.async" level="INFO"/> <!-- Fallthrough root logger and router --> <root level="INFO"> <appender-ref ref="STDOUT"/> <appender-ref ref="CYCLIC"/> <!-- Uncomment to log to file --> <!--<appender-ref ref="FILE"/>--> </root> </configuration>
<appender-ref ref="FILE"/> 默認被注釋掉,導致日志內容不會像文件中輸出。取消此處注釋,opentsdb.log文件中會有日志輸出。但此處配置的日志並不是按日期每天生成的,不方便查找日志。修改為如下:
<?xml version="1.0" encoding="UTF-8"?> <configuration> <!--定義日志文件的存儲地址 勿在 LogBack 的配置中使用相對路徑--> <property name="LOG_HOME" value="/data/logs/opentsdb"/> <!--<jmxConfigurator/>--> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern> <!--%d{ISO8601} %-5level [%thread] %logger{0}: %msg%n--> [%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %logger{0} - %msg%n </pattern> </encoder> </appender> <!-- This appender is responsible for the /logs endpoint. It maintains MaxSize lines of the log file in memory. If you don't need the endpoint, disable this appender (by removing the line "<appender-ref ref="CYCLIC"/>" in the "root" section below) to save some cycles and memory. --> <appender name="CYCLIC" class="ch.qos.logback.core.read.CyclicBufferAppender"> <MaxSize>1024</MaxSize> </appender> <!-- Appender to write OpenTSDB data to a set of rotating log files --> <!--<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${LOG_HOME}/opentsdb.log</file> <append>true</append> <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> <fileNamePattern>${LOG_HOME}/opentsdb.log.%i</fileNamePattern> <minIndex>1</minIndex> <maxIndex>4</maxIndex> </rollingPolicy> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <maxFileSize>100MB</maxFileSize> </triggeringPolicy> <!– encoders are assigned the type ch.qos.logback.classic.encoder.PatternLayoutEncoder by default –> <encoder> <pattern>%date{ISO8601} [%thread] %-5level [%logger{0}.%M] - %msg%n</pattern> </encoder> </appender>--> <!-- 修改為TimeBasedRollingPolicy,按日期產生日志文件--> <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!--<Encoding>UTF-8</Encoding>--> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!--日志文件輸出的文件名--> <FileNamePattern>${LOG_HOME}/opentsdb.%d{yyyy-MM-dd}_%i.info.log</FileNamePattern> <!--日志文件保留天數--> <MaxHistory>180</MaxHistory> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <maxFileSize>100MB</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> </rollingPolicy> <encoder> <pattern>[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %logger{0} - %msg%n</pattern> </encoder> </appender> <!-- Appender for writing full and completed queries to a log file. To use it, make sure to set the "level" to "INFO" in QueryLog below. --> <appender name="QUERY_LOG" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${LOG_HOME}/queries.log</file> <append>true</append> <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> <fileNamePattern>${LOG_HOME}/queries.log.%i</fileNamePattern> <minIndex>1</minIndex> <maxIndex>4</maxIndex> </rollingPolicy> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <maxFileSize>128MB</maxFileSize> </triggeringPolicy> <encoder> <pattern>%date{ISO8601} [%logger.%M] %msg%n</pattern> </encoder> </appender> <!-- Per class logger levels --> <logger name="QueryLog" level="INFO" additivity="false"> <appender-ref ref="QUERY_LOG"/> </logger> <logger name="org.apache.zookeeper" level="INFO"/> <logger name="org.hbase.async" level="INFO"/> <logger name="com.stumbleupon.async" level="INFO"/> <!-- Fallthrough root logger and router --> <root level="INFO"> <appender-ref ref="STDOUT"/> <appender-ref ref="CYCLIC"/> <!-- Uncomment to log to file --> <appender-ref ref="FILE"/> <!--<appender-ref ref="QUERY_LOG"/>--> </root> </configuration>
按日期產生日志文件,每個文件大小100M,保留180天的日志文件。
queries.log中輸出內容和opentsdb.log重復,<!--<appender-ref ref="QUERY_LOG"/>--> QUERY_LOG內容不再向文件中輸出(格式也未修改)。