天天看點

阿裡雲-日志服務-Log4j寫入日志

<b>---------maven依賴---------</b>

&lt;dependency&gt;

&lt;groupid&gt;com.aliyun.openservices&lt;/groupid&gt;

&lt;artifactid&gt;aliyun-log&lt;/artifactid&gt;

&lt;version&gt;0.6.6&lt;/version&gt;

&lt;/dependency&gt;

&lt;artifactid&gt;log-loghub-log4j-appender&lt;/artifactid&gt;

&lt;version&gt;0.1.3&lt;/version&gt;

&lt;groupid&gt;log4j&lt;/groupid&gt;

&lt;artifactid&gt;log4j&lt;/artifactid&gt;

&lt;version&gt;1.2.17&lt;/version&gt;

<b>---------web.xml配置---------</b>

&lt;!--log4j配置檔案加載--&gt;

&lt;context-param&gt;

&lt;param-name&gt;log4jconfiglocation&lt;/param-name&gt;

&lt;param-value&gt;classpath:log4j.properties&lt;/param-value&gt;

&lt;/context-param&gt;

&lt;!--啟動一個watchdog線程每1800秒掃描一下log4j配置檔案的變化--&gt;

&lt;param-name&gt;log4jrefreshinterval&lt;/param-name&gt;

&lt;param-value&gt;1800000&lt;/param-value&gt;

&lt;!--spring log4j監聽器--&gt;

&lt;listener&gt;

&lt;listener-class&gt;org.springframework.web.util.log4jconfiglistener&lt;/listener-class&gt;

&lt;/listener&gt;

---------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&lt;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 是日志列印時間。

 * */