版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
本文格式為Word版,下載可任意編輯——c語(yǔ)言中l(wèi)og的用法指導(dǎo)c語(yǔ)言中l(wèi)og的用法指導(dǎo)
C語(yǔ)言是一門(mén)實(shí)踐性和動(dòng)手才能要求很高的大學(xué)主干課程,但是C語(yǔ)言測(cè)驗(yàn)課的教學(xué)一向不受重視,教學(xué)效果也不太夢(mèng)想。下面我就跟你們細(xì)致介紹下c語(yǔ)言中l(wèi)og的用法的用法,夢(mèng)想對(duì)你們有用。
Log4c中有三個(gè)重要的概念,Category,Appender,Layout。
Category用于區(qū)分不同的Logger,其實(shí)它就是個(gè)logger。在一個(gè)程序中我們可以通過(guò)Category來(lái)指定好多的Logger,用于不同的目的。
Appdender用于描述輸出流,通過(guò)為Category來(lái)指定一個(gè)Appdender,可以抉擇將log信息來(lái)輸出到什么地方去,譬如stdout,stderr,文件,或者是socket等等
Layout用于指定日志信息的格式,通過(guò)為Appender來(lái)指定一個(gè)Layout,可以抉擇log信息以何種格式來(lái)輸出,譬如是否有帶有時(shí)間戳,是否包含文件位置信息等,以及他們?cè)谝粭llog信息中的.輸出格式的等。
轉(zhuǎn)載請(qǐng)注明出處:/fdl19881/article/details/8192363
例子:
系統(tǒng):ubuntu12.10.
打定:
安裝log4c庫(kù),sudoapt-getinstallliblog4c-devliblog4c-doc
別的系統(tǒng)請(qǐng)百度/GOOGLE找相關(guān)編譯安裝當(dāng)。log4c官網(wǎng):/
文件:
log.hlog.c自己將log4c重新封裝的函數(shù)
test-log.c測(cè)試用的主函數(shù)
log4crc配置文件xml,照著寫(xiě)就行
//log.h
[cpp]viewplaincopy
01.#ifndef_LOG_H_
02.#define_LOG_H_
03.
04.#include
05.#include
06.
07.#ifdef__cplusplus
08.externC
09.
10.#endif
11.
12.#includelog4c.h
13.
14.#ifdef__cplusplus
15.
16.#endif
17.
18.#defineLOG_PRI_ERRORLOG4C_PRIORITY_ERROR
19.#defineLOG_PRI_WARNLOG4C_PRIORITY_WARN
20.#defineLOG_PRI_NOTICELOG4C_PRIORITY_NOTICE
21.#defineLOG_PRI_DEBUGLOG4C_PRIORITY_DEBUG
22.#defineLOG_PRI_TRACELOG4C_PRIORITY_TRACE
23.
24.externintlog_openconstchar*category;
25.externvoidlog_messageintpriority,constchar*fmt,...;
26.externvoidlog_traceconstchar*file,intline,constchar*func,constchar*fmt,...;
27.externintlog_close;
28.
29.#defineLOG_ERRORfmt,args...
30.log_messageLOG_PRI_ERROR,fmt,##args
31.#defineLOG_WARNfmt,args...
32.log_messageLOG_PRI_WARN,fmt,##args
33.#defineLOG_NOTICEfmt,args...
34.log_messageLOG_PRI_NOTICE,fmt,##args
35.#defineLOG_DEBUGfmt,args...
36.log_messageLOG_PRI_DEBUG,fmt,##args
37.#defineLOG_TRACEfmt,args...
38.log_trace__FILE__,__LINE__,__FUNCTION__,fmt,##args
39.
40.
41.#endif
//log.c
[cpp]viewplaincopy在CODE上查看代碼片派生到我的代碼片
01.#include
02.#include
03.#includelog.h
04.
05.
06.staticlog4c_category_t*log_category=NULL;
07.
08.intlog_openconstchar*category
09.
10.iflog4c_init==1
11.
12.return-1;
13.
14.log_category=log4c_category_getcategory;
15.return0;
16.
17.
18.voidlog_messageintpriority,constchar*fmt,...
19.
20.va_listap;
21.
22.assertlog_category!=NULL;
23.
24.va_startap,fmt;
25.log4c_category_vloglog_category,priority,fmt,ap;
26.va_endap;
27.
28.
29.voidlog_traceconstchar*file,intline,constchar*fun,
30.constchar*fmt,...
31.
32.charnew_fmt[2048];
33.constchar*head_fmt=[file:%s,line:%d,function:%s];
34.va_listap;
35.intn;
36.
37.assertlog_category!=NULL;
38.n=sprintfnew_fmt,head_fmt,file,line,fun;
39.strcatnew_fmt+n,fmt;
40.
41.va_startap,fmt;
42.log4c_category_vloglog_category,LOG4C_PRIORITY_TRACE,new_fmt,ap;
43.va_endap;
44.
45.
46.
47.intlog_close
48.
49.returnlog4c_fini;
50.
//test-log.c
[cpp]viewplaincopy在CODE上查看代碼片派生到我的代碼片
01.#include
02.#includelog.h
03.
04.intmainvoid
05.
06.log_openmycat;
07.LOG_TRACEtrace;
08.LOG_ERRORerror;
09.LOG_WARNwarn;
10.LOG_NOTICEnotice;
11.LOG_DEBUGhellolog4c!;
12.log_close;
13.return0;
14.
//配置文件,默認(rèn)名為log4crc
[html]viewplaincopy在CODE上查看代碼片派生到我的代碼片
01.
02.
03.
04.
05.
06.
07.0
08.
09.0
10.1
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
編譯命令:
[python]viewplaincopy在CODE上查看代碼片派生到我的代碼片
01.gcctest-log.clog.c-otest-log-llog4c
運(yùn)行效果
./test-log
[stdout]TRACEmycat-[file:test-log.c,line:7,function:main]trace
[stdout]ERRORmycat-error
[stdout]WARNmycat-warn
[stdout]NOTICEmycat-notice
[stdout]DEBUGmycat-hellolog4c!
講解:
關(guān)于log.h,log.c封裝的內(nèi)容大家可以看看,用到了可變參數(shù)宏,可變參數(shù)這些。百度一下,就有好多人講解了。這里就不說(shuō)了。
log.h與log.c里面用法也很簡(jiǎn)樸
log_opencategory_name;//category_name確定得是log4crc里面已經(jīng)定義的category.
關(guān)于配置文件log4crc
更繁雜的配置參見(jiàn):/blog/1570013
配置文件的探尋是由LOG4C_RCPATH環(huán)境變量抉擇。探尋的配置文件名為log4crc不知道能否變更,沒(méi)研究過(guò)
配置文件中category的priority不知道是什么意思,,反正猶如沒(méi)什么用。不管設(shè)置成什么,猶如都不影響。
環(huán)境變量:
?LOG4C_RCPATHholdsthepathtothemainlog4crcconfigurationfile#環(huán)境變量若未設(shè)置
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年中考道德與法治(福建)第三次模擬考試(含答案)
- 浙江中考科學(xué)試卷及答案
- 環(huán)衛(wèi)安全考題題庫(kù)及答案
- 遼寧干部在線試題及答案
- 科四考題奇葩題庫(kù)及答案
- 2025年職業(yè)技能教學(xué)題庫(kù)及答案
- 河南機(jī)電職測(cè)題庫(kù)及答案
- 比亞迪賣(mài)貨合同范本
- 會(huì)所店面轉(zhuǎn)讓合同范本
- 社區(qū)護(hù)理中風(fēng)患者心理支持
- 潔凈工作臺(tái)性能參數(shù)校準(zhǔn)規(guī)范
- 如果歷史是一群喵16
- 赫茲伯格-雙因素理論
- 華為HCIA存儲(chǔ)H13-611認(rèn)證培訓(xùn)考試題庫(kù)(匯總)
- 社會(huì)主義發(fā)展史知到章節(jié)答案智慧樹(shù)2023年齊魯師范學(xué)院
- 美國(guó)史智慧樹(shù)知到答案章節(jié)測(cè)試2023年?yáng)|北師范大學(xué)
- GB/T 15924-2010錫礦石化學(xué)分析方法錫量測(cè)定
- GB/T 14525-2010波紋金屬軟管通用技術(shù)條件
- GB/T 11343-2008無(wú)損檢測(cè)接觸式超聲斜射檢測(cè)方法
- GB/T 1040.3-2006塑料拉伸性能的測(cè)定第3部分:薄膜和薄片的試驗(yàn)條件
- 教師晉級(jí)專(zhuān)業(yè)知識(shí)和能力證明材料
評(píng)論
0/150
提交評(píng)論