源碼中的日志怎么添加 代碼哪些部分要著日志?
代碼哪些部分要著日志?源代碼文件開頭需注明創(chuàng)建時(shí)間、創(chuàng)建家族人、如何修改時(shí)間、改人、修改原因關(guān)鍵代碼功能注釋那就證明出過(guò)bug的代碼,沒改后寫明其他重要性的實(shí)現(xiàn)程序功能部分提示其他人盡量的地方如何查看
代碼哪些部分要著日志?
源代碼文件開頭需注明創(chuàng)建時(shí)間、創(chuàng)建家族人、如何修改時(shí)間、改人、修改原因
關(guān)鍵代碼功能注釋那就證明
出過(guò)bug的代碼,沒改后寫明
其他重要性的實(shí)現(xiàn)程序功能部分
提示其他人盡量的地方
如何查看log日志文件?
打開系統(tǒng)方法:一、在Java與C語(yǔ)言中作為輸出日志:
1)Java代碼在程序中控制輸出日志,在用android.util.Log類的以上5個(gè)方法:Log.v()、Log.d()、Log.i()、Log.w()、Log.e()。分填寫Verbose、Debug、INFO、Warn、Error的首字母。例如:Log.i(
C#寫一個(gè)簡(jiǎn)單的Log日志?
usingSystem
using
using
usingSystem.Text
namespace
{
///ltsummarygt
///日志類
///lt/summarygt
///ltremarksgt
///當(dāng)動(dòng)態(tài)鏈接庫(kù)Write方法時(shí)絕對(duì)不會(huì)造成線程阻塞,而是立刻能完成方法全局函數(shù),并且動(dòng)態(tài)鏈接庫(kù)線程你不等待日志讀取文件之后才直接返回。
///lt/remarksgt
privateclassLogger
{
welfarestaticvoidWrite(stringmsgText)
{
Write(,,
is怎么查看log日志?
打開系統(tǒng)方法:
一、在Java與C語(yǔ)言中控制輸出日志:
1)Java代碼在程序中作為輸出日志,可以使用android.util.Log類的200元以內(nèi)5個(gè)方法:
Log.v()、Log.d()、Log.i()、Log.w()、Log.e()。
分按Verbose、Debug、INFO、Warn、Error的首字母。
.例如:Log.i(#34類::函數(shù)名#34,#34日期_時(shí)間_源碼文件名_行號(hào)_日志信息內(nèi)容#34)
2)C代碼在程序中輸出日志,可以使用log的API函數(shù):
__android_log_write(日志類型宏,日志標(biāo)簽字符串,日志令牌內(nèi)容字符串)
要:1.中去添加LOCAL_LDLIBS:-L$(SYSROOT)/usr/lib-llog
2.*.c中再添加#includeltandroid/log.hgt
3.日志類型宏有:
圖片文件夾代碼代碼不勝感激:
//Androidlogpriorityvalues,inascendingpriorityorder.
typedefenumandroid_LogPriority{
ANDROID_LOG_UNKNOWN0,
//justforSetMinPriority()
ANDROID_LOG_DEFAULT, ANDROID_LOG_VERBOSE, ANDROID_LOG_DEBUG, ANDROID_LOG_INFO, ANDROID_LOG_WARN, ANDROID_LOG_ERROR, ANDROID_LOG_FATAL,
//butwhileSetMinPriority()must belast
ANDROID_LOG_SILENT,
}android_LogPriority
二、logcat使用方法:
Usage:logcat[options][filterspecs]
用法:logcat[選項(xiàng)][過(guò)濾說(shuō)明]
optionsinclude:
選項(xiàng)包涵:
-sSetdefaultfiltertosilent.
Likespecifyingfilterspec#39*:S#39
可以設(shè)置默認(rèn)過(guò)濾為詭異地的。
像指定過(guò)濾處理那就證明為*:S,見下面過(guò)濾只能證明部份詳述
-fltfilenamegtLogtofile.
Defaultdidstdout
輸出日志到文件。
設(shè)置為stdout
-r[ltkbytesgt]Rotatelogeverykbytes.
(16ifunspecified).
Requires-f
設(shè)置圓環(huán)形日志緩沖區(qū)的kbytes。
默認(rèn)值為16。
需要和-f選項(xiàng)一同不使用
-nltcountgtSetsmaxvnumberwithrotatedlogsdidltcountgt,default4
可以設(shè)置環(huán)形日志緩沖區(qū)的大的數(shù)目,默認(rèn)值是4,需要和-r選項(xiàng)相互建議使用
-vltformatgtSetsthelogprintformat,whereltformatgtis one of:
設(shè)置里log的可以打印格式,格式有如下主要7種:(沒法兩種不使用)
brief
process
tag
thread
raw
time
threadtime
way
-cclear(flush)theentirelogandexit
清除所有l(wèi)og并再次
-ddumpthelogand thenexit(don#39tblock)
能夠得到所有l(wèi)og并退出且不阻塞住
-tltcountgtprintonlythe mostrecentltcountgtlines(implies-d)
僅打印最近的由參數(shù)count強(qiáng)調(diào)的行數(shù)(勢(shì)必包涵-d)
-glet'sthesizeof thelog#39sringbufferbutexit
換取圓環(huán)形緩沖區(qū)的大小并退出
-bltbuffergtRequestalternateringbuffer,#39main#39,#39system#39,#39radio#39or#39events#39.
Multiple-bparametersthey'reallowedthenresultshaveinterleaved.
Thedefaultis-bmain-bsystem.
各位供修改成的環(huán)形緩沖區(qū),如:main,system,radio,events。
多個(gè)-b參數(shù)是被容許,因此結(jié)果是飛旋輸出的。
-bmain-bsystem是設(shè)置成的。
-Binputthelogacrossbinary
輸出log到二進(jìn)制文件中。
filterspecsthey'reaseriesthelttaggt[:priority]
過(guò)濾那就證明是一系列l(wèi)ttaggt[:priority]
wherelttaggtarealogcomponenttag(同問(wèn)*for all)andpolicyit's:
tag是eclipse中l(wèi)ogcat圖形界面中Tag的內(nèi)容(或者有*意思是全部),它之后的冒號(hào)(:)后面跟優(yōu)先級(jí):
日志類型標(biāo)識(shí)符(優(yōu)先級(jí)由低向高排列順序):
1.V—Verbose祥細(xì)的lt-最多優(yōu)先權(quán)
2.D—Debug調(diào)試
3.I—Info消息
4.W—Warn威脅
5.E—Error錯(cuò)誤
6.F—Fatal淬毒的
7.S—Silent幽幽的lt-高了優(yōu)先權(quán)
#39*#39means#39*:d#39bothlttaggtheitselfmeanslttaggt:v
*并不代表*:d且單孤地tag那樣的話tag:V
Ifactuallyspecifyon thecommandline,filterspecit'ssetreturningANDROID_LOG_TAGS.
如果沒有在命令行上沒有詳細(xì)說(shuō)明,過(guò)濾規(guī)格即是ANDROID_LOG_TAGS結(jié)果集。
Ifoh,nofilterspecisfound,filterdefaultsto#39*:I34
如果不是沒有過(guò)濾雜質(zhì)只能說(shuō)明,過(guò)濾規(guī)格默認(rèn)為*:I
Ifnotrequiredwith-v,formatnotsetacrossANDROID_PRINTF_LOGordefaultscan#34brief#34
如果沒有沒有-v指定格式,將是ANDROID_PRINTF_LOG或brief格式集。
1)只輸出委托標(biāo)簽和類型的日志
格式:
adblogcatlt日志標(biāo)簽a8:lt日志類型標(biāo)識(shí)符rlmlt日志標(biāo)簽gt:lt日志類型標(biāo)識(shí)符r26...*:S
注:1.這個(gè)可以寫多個(gè)lt日志標(biāo)簽r26:lt日志類型標(biāo)識(shí)符rlm之間用空格連成一體;
2.結(jié)果要是*:S,可以表示其它的都最好別沒顯示不出來(lái)
的或:
$adblogcatdalvikvm:DCheckin:W*:S
注:adblogcatCheckin*:S同具于rlmadblogcatCheckin:V*:S
注:以下命令均沒加-v來(lái)一針見血地指出日志格式,即設(shè)置為為:ANDROID_PRINTF_LOG或brief格式集。
2)輸出委托標(biāo)簽和類型的內(nèi)帶格式的日志
注:200以內(nèi)測(cè)試日志內(nèi)容為:testlogformat,
即eclipse中的logcat圖形界面里的Text中的內(nèi)容!
日志類型/日志標(biāo)簽(進(jìn)程ID):日志內(nèi)容
的或:$adblogcat-vbriefCheckin*:S
I/Checkin(24713):testlogformat
日志類型(進(jìn)程ID)日志內(nèi)容(日志標(biāo)簽)
或者:$adblogcat-vprocessCheckin*:S
I(24713)testlogformat(Checkin)
3.tag-日志類型/日志標(biāo)簽:日志內(nèi)容
.例如:$adblogcat-vtagCheckin*:S
I/Checkin:testlogformat
日志類型(進(jìn)程ID:線程ID)
.例如:$adblogcat-vthreadCheckin*:S
I(24713:0x6089)testlogformat
5.raw-日志內(nèi)容
的或:$adblogcat-vrawCheckin*:S
testlogformat
6.time-日期調(diào)用時(shí)間日志類型/日志標(biāo)簽(進(jìn)程ID):日志內(nèi)容
例如:$adblogcat-vtimeCheckin*:S
05-2711:25:33.854I/Checkin(24713):testlogformat
日期全局函數(shù)時(shí)間進(jìn)程ID線程ID日志類型日志標(biāo)簽:日志內(nèi)容
或者:$adblogcat-vtimeCheckin*:S
05-2711:25:33.8542471324713ICheckin:testlogformat
注:唯有此種格式時(shí)線程ID為十進(jìn)制數(shù)。
8.long-[日期全局函數(shù)時(shí)間進(jìn)程ID:線程ID日志類型/日志標(biāo)簽]轉(zhuǎn)行沒顯示日志內(nèi)容
或者:$adblogcat-vhalfCheckin*:S
[05-2711:25:33.85424713:0x6089I/Checkin]
testlogwhilemat