>Configuring LOG4J for MoSKito
MoSKito内嵌支持主流的日志框架,特别是log4j,java.util.logging和对于懒人们使用的System.outs.为了给StatsProducer添加一个日志,下面是需要的步骤:
注意,MoSKito2.3.0用SLF4J取代了LOG4J.
Create a logger创建一个logger.
MoSKito说到两个构建日志者分别是intervalStatsLogger和DefaultStatsLogger。
intervalStatsLogger可以附着在内部,DefaultStatsLogger添加自己到StatsProducer,不能被重置。两者连接区间的IntervalUpdateService并且监视区间更新。只要IntervalUpdate被触发。他们会读取当前自身所在的Producer的状态并且发送到LogOutput.
下面的例子是如何配置和添加一个log4j的logger到任何的生产者:
import org.apache.log4j.Logger;
import net.java.dev.moskito.core.logging.IntervalStatsLogger;
import net.java.dev.moskito.core.logging.DefaultStatsLogger;
import net.java.dev.moskito.core.logging.Log4JOutput;
import net.java.dev.moskito.core.stats.DefaultIntervals;
....
IStatsProducer producer = ...;
// add moskito logger
new DefaultStatsLogger(producer, new Log4JOutput(Logger.getLogger("MoskitoDefault")));
new IntervalStatsLogger(producer, DefaultIntervals.FIVE_MINUTES, new Log4JOutput(Logger.getLogger("Moskito5m")));
new IntervalStatsLogger(producer, DefaultIntervals.FIFTEEN_MINUTES, new Log4JOutput(Logger.getLogger("Moskito15m")));
new IntervalStatsLogger(producer, DefaultIntervals.ONE_HOUR, new Log4JOutput(Logger.getLogger("Moskito1h")));
new IntervalStatsLogger(producer, DefaultIntervals.ONE_DAY, new Log4JOutput(Logger.getLogger("Moskito1d")));
//end moskito logger
Configure Log4J
添加一个log4j到producter只是一半的工作,你依然需要告诉log4j输出到哪儿。
下面的例子是创建日志文件对于每一个区间并记录他们:
Define Appenders
log4j.xml
<!-- MOSKITO APPENDER DECLARATION START -->
<appender name="MoskitoDefaultFileAppender" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="logs/monitoring_msk.log" />
<param name="MaxFileSize" value="100MB" />
<param name="MaxBackupIndex" value="5" />
<param name="Threshold" value="INFO" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="%r %d{ISO8601} %m%n"/>
</layout>
</appender>
<appender name="Moskito5mFileAppender" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="logs/monitoring_msk_5m.log" />
<param name="MaxFileSize" value="100MB" />
<param name="MaxBackupIndex" value="5" />
<param name="Threshold" value="INFO" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="%r %d{ISO8601} %m%n"/>
</layout>
</appender>
<appender name="Moskito15mFileAppender" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="logs/monitoring_msk_15m.log" />
<param name="MaxFileSize" value="100MB" />
<param name="MaxBackupIndex" value="5" />
<param name="Threshold" value="DEBUG" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="%r %d{ISO8601} %m%n"/>
</layout>
</appender>
<appender name="Moskito1hFileAppender" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="logs/monitoring_msk_1h.log" />
<param name="MaxFileSize" value="100MB" />
<param name="MaxBackupIndex" value="5" />
<param name="Threshold" value="INFO" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="%r %d{ISO8601} %m%n"/>
</layout>
</appender>
<appender name="Moskito1dFileAppender" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="logs/monitoring_msk_1d.log" />
<param name="MaxFileSize" value="100MB" />
<param name="MaxBackupIndex" value="5" />
<param name="Threshold" value="INFO" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="%r %d{ISO8601} %m%n"/>
</layout>
</appender>
<!-- /Moskito Appender DECLARATION END -->
Define Logger
log4j.xml
<!-- Moskito LOGGER DECLARATION START -->
<logger name="MoskitoDefault" additivity="false">
<level value="INFO"/>
<appender-ref ref="MoskitoDefaultFileAppender"/>
</logger>
<logger name="Moskito5m" additivity="false">
<level value="INFO"/>
<appender-ref ref="Moskito5mFileAppender"/>
</logger>
<logger name="Moskito15m" additivity="false">
<level value="INFO"/>
<appender-ref ref="Moskito15mFileAppender"/>
</logger>
<logger name="Moskito1h" additivity="false">
<level value="INFO"/>
<appender-ref ref="Moskito1hFileAppender"/>
</logger>
<logger name="Moskito1d" additivity="false">
<level value="INFO"/>
<appender-ref ref="Moskito1dFileAppender"/>
</logger>
<!-- /Moskito LOGGER DECLARATION END -->
What else you might want to know
>DefaultStatsLogger日志记录每分钟一次。IntervalStatsLogger在区间结束时记录日志。
>日志等级为INFO.
到此Start working, step by step 一步一步开始工作模块就结束了。接下来我们要说的是第三模块:MoSKito-Essential的模块。
----------------------------------------
MoSKito内嵌支持主流的日志框架,特别是log4j,java.util.logging和对于懒人们使用的System.outs.为了给StatsProducer添加一个日志,下面是需要的步骤:
注意,MoSKito2.3.0用SLF4J取代了LOG4J.
Create a logger创建一个logger.
MoSKito说到两个构建日志者分别是intervalStatsLogger和DefaultStatsLogger。
intervalStatsLogger可以附着在内部,DefaultStatsLogger添加自己到StatsProducer,不能被重置。两者连接区间的IntervalUpdateService并且监视区间更新。只要IntervalUpdate被触发。他们会读取当前自身所在的Producer的状态并且发送到LogOutput.
下面的例子是如何配置和添加一个log4j的logger到任何的生产者:
import org.apache.log4j.Logger;
import net.java.dev.moskito.core.logging.IntervalStatsLogger;
import net.java.dev.moskito.core.logging.DefaultStatsLogger;
import net.java.dev.moskito.core.logging.Log4JOutput;
import net.java.dev.moskito.core.stats.DefaultIntervals;
....
IStatsProducer producer = ...;
// add moskito logger
new DefaultStatsLogger(producer, new Log4JOutput(Logger.getLogger("MoskitoDefault")));
new IntervalStatsLogger(producer, DefaultIntervals.FIVE_MINUTES, new Log4JOutput(Logger.getLogger("Moskito5m")));
new IntervalStatsLogger(producer, DefaultIntervals.FIFTEEN_MINUTES, new Log4JOutput(Logger.getLogger("Moskito15m")));
new IntervalStatsLogger(producer, DefaultIntervals.ONE_HOUR, new Log4JOutput(Logger.getLogger("Moskito1h")));
new IntervalStatsLogger(producer, DefaultIntervals.ONE_DAY, new Log4JOutput(Logger.getLogger("Moskito1d")));
//end moskito logger
Configure Log4J
添加一个log4j到producter只是一半的工作,你依然需要告诉log4j输出到哪儿。
下面的例子是创建日志文件对于每一个区间并记录他们:
Define Appenders
log4j.xml
<!-- MOSKITO APPENDER DECLARATION START -->
<appender name="MoskitoDefaultFileAppender" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="logs/monitoring_msk.log" />
<param name="MaxFileSize" value="100MB" />
<param name="MaxBackupIndex" value="5" />
<param name="Threshold" value="INFO" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="%r %d{ISO8601} %m%n"/>
</layout>
</appender>
<appender name="Moskito5mFileAppender" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="logs/monitoring_msk_5m.log" />
<param name="MaxFileSize" value="100MB" />
<param name="MaxBackupIndex" value="5" />
<param name="Threshold" value="INFO" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="%r %d{ISO8601} %m%n"/>
</layout>
</appender>
<appender name="Moskito15mFileAppender" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="logs/monitoring_msk_15m.log" />
<param name="MaxFileSize" value="100MB" />
<param name="MaxBackupIndex" value="5" />
<param name="Threshold" value="DEBUG" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="%r %d{ISO8601} %m%n"/>
</layout>
</appender>
<appender name="Moskito1hFileAppender" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="logs/monitoring_msk_1h.log" />
<param name="MaxFileSize" value="100MB" />
<param name="MaxBackupIndex" value="5" />
<param name="Threshold" value="INFO" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="%r %d{ISO8601} %m%n"/>
</layout>
</appender>
<appender name="Moskito1dFileAppender" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="logs/monitoring_msk_1d.log" />
<param name="MaxFileSize" value="100MB" />
<param name="MaxBackupIndex" value="5" />
<param name="Threshold" value="INFO" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="%r %d{ISO8601} %m%n"/>
</layout>
</appender>
<!-- /Moskito Appender DECLARATION END -->
Define Logger
log4j.xml
<!-- Moskito LOGGER DECLARATION START -->
<logger name="MoskitoDefault" additivity="false">
<level value="INFO"/>
<appender-ref ref="MoskitoDefaultFileAppender"/>
</logger>
<logger name="Moskito5m" additivity="false">
<level value="INFO"/>
<appender-ref ref="Moskito5mFileAppender"/>
</logger>
<logger name="Moskito15m" additivity="false">
<level value="INFO"/>
<appender-ref ref="Moskito15mFileAppender"/>
</logger>
<logger name="Moskito1h" additivity="false">
<level value="INFO"/>
<appender-ref ref="Moskito1hFileAppender"/>
</logger>
<logger name="Moskito1d" additivity="false">
<level value="INFO"/>
<appender-ref ref="Moskito1dFileAppender"/>
</logger>
<!-- /Moskito LOGGER DECLARATION END -->
What else you might want to know
>DefaultStatsLogger日志记录每分钟一次。IntervalStatsLogger在区间结束时记录日志。
>日志等级为INFO.
到此Start working, step by step 一步一步开始工作模块就结束了。接下来我们要说的是第三模块:MoSKito-Essential的模块。
----------------------------------------