国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

請(qǐng)問(wèn)我該如何利用python來(lái)制作一個(gè)日志分析程序?

瀏覽:99日期:2022-08-29 18:25:48

問(wèn)題描述

近期想做一個(gè)分析小軟件是關(guān)于分析日志文件的,當(dāng)然是用python了,但是捉摸了好久沒(méi)有太多的思路,希望各位給我一些建議,我該如何分析這個(gè)日志。

日志的源文件是類似這樣的

$DEBUG 2014-06-24 14:30:01.331@00000000@0000@[../ticketBusiness/InnerUIMsgProc/InnerUIMsgProc.cpp][319]收到界面Url[ file:///Afc/Run/tvm_ui/tvmticket.html?action=3000&singleprice=200 ]$ INFO 2014-06-24 14:30:01.332@00000000@0000@[../ticketBusiness/InnerUIMsgProc/InnerUIMsgProc.cpp][298]解析后,收到UI命令碼為[ 3000 ] $ INFO 2014-06-24 14:30:01.332@00000000@0000@[../ticketBusiness/InnerUIMsgProc/InnerUIMsgProc.cpp][327]界面消息:[ 業(yè)務(wù)START ]消息。$DEBUG 2014-06-24 14:30:01.332@00000000@0000@[InitUITicketSinglePriceInfo][558]乘客選擇價(jià): [ 200 ].................由于日志文件行數(shù)太多中間這部分我就省略了...........................................由于日志文件行數(shù)太多中間這部分我就省略了...........................................由于日志文件行數(shù)太多中間這部分我就省略了..........................$DEBUG 2014-06-24 14:30:27.849@00000000@0000@[../ticketBusiness/businessInterfaceBase/BusinessInterfaceUIBase.cpp][72] 發(fā)送售卡結(jié)果URL,售卡結(jié)果[0]出數(shù)量[1]找零金額[800]$DEBUG 2014-06-24 14:30:27.849@00000000@0000@[../ticketBusiness/businessInterfaceBase/BusinessInterfaceUIBase.cpp][79] 發(fā)送售卡結(jié)果URL[file:///Afc/Run/tvm_ui/response.html?action=3010&errorcode=0&outticket=1&changesum=800]$ INFO 2014-06-24 14:30:27.849@00000000@0000@[../ticketBusiness/InnerUIMsgProc/InnerUIMsgProc.cpp][251]內(nèi)隊(duì)列消息[ 確定處理消息 ]處理完成。

每一個(gè)乘客在購(gòu)的時(shí)候,系統(tǒng)會(huì)在日志文件中記錄收到乘客操作指令,就是日志文件中的這一行

$DEBUG 2014-06-24 14:30:01.331@00000000@0000@[../ticketBusiness/InnerUIMsgProc/InnerUIMsgProc.cpp][319]收到界面Url[ file:///Afc/Run/tvm_ui/tvmticket.html?action=3000&singleprice=200 ]

也就代表著一筆交易的START

當(dāng)一筆交易結(jié)束后程序會(huì)在日志文件中添加這樣一行記錄作為一筆交易的結(jié)束日志

$ INFO 2014-06-24 14:30:27.849@00000000@0000@[../ticketBusiness/InnerUIMsgProc/InnerUIMsgProc.cpp][251]內(nèi)隊(duì)列消息[ 確定處理消息 ]處理完成。

我現(xiàn)在想的是如何利用python將日志文件中 每一筆完整的交易日志(不是每一行)單獨(dú)提取出來(lái)以后,進(jìn)行逐行分析,但是有一個(gè)關(guān)鍵點(diǎn),也是為什么要做這個(gè)日志分析軟件的原因就是這個(gè)系統(tǒng)可能存在bug,導(dǎo)致進(jìn)程之間通信中斷,直接導(dǎo)致某一筆交易日志殘缺不全,也就是說(shuō)很可能日志文件中某一筆交易沒(méi)有“內(nèi)隊(duì)列消息[ 確定處理消息 ]處理完成”這一行或者這一行以上的若干行,那在如何讀取一筆完整交易日志記錄的時(shí)候就存在問(wèn)題了,如何能實(shí)現(xiàn)在提取日志文件中

[../ticketBusiness/InnerUIMsgProc/InnerUIMsgProc.cpp][319]收到界面Url[ file:///Afc/Run/tvm_ui/tvmticket.html?action=3000&singleprice=200 ]

有這樣字樣的記錄到下一次再次出現(xiàn)這條記錄中間的部分 就可以理解為是一筆交易記錄。

代碼的邏輯這塊沒(méi)啥太好的思路希望各位給我一些好的思路。

提示:日志文件是每10MB一個(gè),當(dāng)日志文件容量達(dá)到10MB以后就自動(dòng)生成下一個(gè)日志文件,tvmticket.log、tvmticket.log.1、tvmticket.log.2、tvmticket.log.3,數(shù)字越大的日志記錄時(shí)間越靠前,如果想合并出一個(gè)完整的日志文件先要讀取tvmticket.log.3然后tvmticket.log.2、tvmticket.log.1、tvmticket.log。

問(wèn)題解答

回答1:

我不知道代碼要什么邏輯,我看你說(shuō)的挺清晰的,是在問(wèn)代碼怎么實(shí)現(xiàn)? 解決你的問(wèn)題 我?guī)仔写a解決。大概代碼

a = log3 + log2 +log1print re.findall(’.+收到界面Url[sS]+?處理完成。’, a) #得到每筆的log, 如果不全 你可以再對(duì)它檢驗(yàn)

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 镇坪县| 博爱县| 娱乐| 白水县| 阿克陶县| 买车| 紫金县| 林芝县| 阜平县| 林口县| 文水县| 金山区| 龙泉市| 绍兴县| 育儿| 仪陇县| 济宁市| 武夷山市| 咸宁市| 渭南市| 仙居县| 永顺县| 苏尼特左旗| 芜湖市| 广安市| 公主岭市| 随州市| 康乐县| 三亚市| 康定县| 林芝县| 平邑县| 卫辉市| 武夷山市| 神池县| 龙井市| 慈利县| 广丰县| 元朗区| 柘荣县| 澄江县|