<b>---------maven依賴---------</b>
<dependency>
<groupid>com.aliyun.openservices</groupid>
<artifactid>aliyun-log</artifactid>
<version>0.6.6</version>
</dependency>
<artifactid>log-loghub-log4j-appender</artifactid>
<version>0.1.3</version>
<groupid>log4j</groupid>
<artifactid>log4j</artifactid>
<version>1.2.17</version>
<b>---------web.xml配置---------</b>
<!--log4j配置檔案加載-->
<context-param>
<param-name>log4jconfiglocation</param-name>
<param-value>classpath:log4j.properties</param-value>
</context-param>
<!--啟動一個watchdog線程每1800秒掃描一下log4j配置檔案的變化-->
<param-name>log4jrefreshinterval</param-name>
<param-value>1800000</param-value>
<!--spring log4j監聽器-->
<listener>
<listener-class>org.springframework.web.util.log4jconfiglistener</listener-class>
</listener>
---------log4j.properties配置---------
log4j.rootlogger=info,loghub
log4j.appender.loghub = com.aliyun.openservices.log.log4j.loghubappender
log4j.appender.loghub.projectname = 你的日志服務projectname
log4j.appender.loghub.logstore = 你的日志服務logstorename
log4j.appender.loghub.topic = 你的日志服務topic
log4j.appender.loghub.endpoint = cn-hangzhou.log.aliyuncs.com
log4j.appender.loghub.accesskeyid = 你的阿裡雲accesskeyid
log4j.appender.loghub.accesskey = 你的阿裡雲accesskey
#log4j.appender.loghub.ststoken=[your ststoken]
log4j.appender.loghub.packagetimeoutinms=3000
log4j.appender.loghub.logscountperpackage=4096
log4j.appender.loghub.logsbytesperpackage = 5242880
log4j.appender.loghub.mempoolsizeinbyte=1048576000
log4j.appender.loghub.iothreadscount=1
log4j.appender.loghub.timeformat=yyyy-mm-dd't'hh:mmz
log4j.appender.loghub.timezone=utc
---------java測試代碼---------
import org.apache.log4j.logmanager;
import org.apache.log4j.logger;
public class testlog4j
{
private static logger logger = logmanager.getlogger(testlog4j.class);
public static void main(string args[])
long starttime = system.currenttimemillis();
system.out.println("寫日志完成-開始:"+starttime);
for(int i=0;i<30000;i++)
logger.info(i+"," +system.currenttimemillis()+ ",備注字段内容2w-from-log4j-"+i);
}
long endtime = system.currenttimemillis();
system.out.println("寫日志完成-結束:"+endtime);
system.out.println("寫日志完成-用時:"+(endtime-starttime));//2個shard,3萬條日志寫入用時約1.58秒
/*
* 通過loghub log4j appender,您可以控制日志的輸出目的地為阿裡雲日志服務。需要注意的是,loghub log4j appender不支援設定日志的輸出格式,寫到日志服務中的日志的樣式如下:
* level:error
* location:test.testlog4jappender.main(testlog4jappender.java:18)
* message:test log4j appender
* thread:main
* time:2016-05-27t03:15+0000
*其中:
* level 是日志級别。
* location 是日志列印語句的代碼位置。
* message 是日志内容。
* thread 是線程名稱。
* time 是日志列印時間。
* */