<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" name="MyApp" packages="">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="[%d{HH:mm:ss.SSS}] [%-5level] [%l] - %msg%xEx%n" />
</Console>
<Syslog name="RFC5424" format="RFC5424" host="10.0.7.167" port="514"
protocol="UDP" appName="record" mdcId="mdc" includeMDC="true"
facility="LOCAL0" enterpriseNumber="18060" newLine="true" messageId="Audit"
id="App">
</Syslog>
<!--这个会打印出所有的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档 -->
<RollingFile name="gameserver" fileName="./log/gameserver.log"
append="false" filePattern="./logs/$${date:yyyy-MM}/record-%d{yyyy-MM-yyyy}-%i.log.gz">
<PatternLayout
pattern="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5level] [%l] - %msg%xEx%n" />
<SizeBasedTriggeringPolicy size="50MB" />
<ThresholdFilter level="debug">
</ThresholdFilter>
</RollingFile>
<RollingFile name="error" fileName="./log/error.log"
filePattern="./log/%d{yyyyMMddHHmm}error.log">
<PatternLayout
pattern="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5level] [%l] - %msg%xEx%n" />
<SizeBasedTriggeringPolicy size="30MB" />
<ThresholdFilter level="error">
</ThresholdFilter>
</RollingFile>
<RollingFile name="rcd" fileName="./log/rcd.log"
filePattern="./log/%d{yyyyMMdd}rcd.log">
<PatternLayout
pattern="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5level] [%l] - %msg%xEx%n" />
<ThresholdFilter level="info">
</ThresholdFilter>
<Policies>
<TimeBasedTriggeringPolicy interval="1"
modulate="true" />
</Policies>
</RollingFile>
</Appenders>
<Loggers>
<Root level="trace">
<AppenderRef ref="Console" />
</Root>
<Logger name="LOG">
<AppenderRef ref="RFC5424" />
<AppenderRef ref="gameserver" />
<AppenderRef ref="error" />
</Logger>
<Logger name="rcd">
<AppenderRef ref="RFC5424" />
<AppenderRef ref="rcd" />
</Logger>
</Loggers>
</Configuration>
public static Logger getLogger(Class clazz) {
return LogManager.getContext(clazz.getClassLoader(), false).getLogger("LOG");
}
public static Logger getLogger1(Class clazz) {
return LogManager.getContext(clazz.getClassLoader(), false).getLogger("rcd");
}
public static void main(String[] args) {
while (true) {
getLogger(MyLogger.class).error("error");
getLogger(MyLogger.class).warn("warn");
getLogger(MyLogger.class).info("info");
getLogger(MyLogger.class).debug("debug");
getLogger1(MyLogger.class).warn("rcdwarn");
getLogger1(MyLogger.class).info("rcdinfo");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}