tabulate結(jié)合loguru打印出美觀又方便查找的日志記錄零抬!

在開(kāi)發(fā)過(guò)程中經(jīng)常碰到在本地環(huán)境無(wú)法完成聯(lián)調(diào)測(cè)試的情況锚赤,必須到統(tǒng)一的聯(lián)機(jī)環(huán)境對(duì)接其他系統(tǒng)測(cè)試。往往是出現(xiàn)了BUG難以查找數(shù)據(jù)記錄及時(shí)定位到錯(cuò)誤出現(xiàn)的位置。

【閱讀全文】

面對(duì)這種情況可能情況可能是一個(gè)簡(jiǎn)單的BUG導(dǎo)致的似芝,但是定位問(wèn)題往往就需要很長(zhǎng)的時(shí)間那婉。在python編程中推薦非標(biāo)準(zhǔn)庫(kù)tabulate,它可以將程序運(yùn)行過(guò)程中產(chǎn)生的數(shù)據(jù)記錄格式化的打印出來(lái)很方便我們定位問(wèn)題党瓮。

通過(guò)結(jié)合簡(jiǎn)單的日志非標(biāo)準(zhǔn)庫(kù)loguru可以很快的打印出又美觀又實(shí)用的日志記錄详炬,loguru非標(biāo)準(zhǔn)庫(kù)其實(shí)在一些文章的源碼示例中我們已經(jīng)在使用了。

安裝過(guò)程還是通過(guò)pip的方式直接安裝寞奸,由于loguru呛谜、tabulate都是python的非標(biāo)準(zhǔn)庫(kù),因此枪萄,沒(méi)有安裝的話需要安裝一下隐岛。默認(rèn)我們都使用的清華大學(xué)的python鏡像站,大家可以選擇其他的鏡像站都可以瓷翻。

pip install loguru -i https://pypi.tuna.tsinghua.edu.cn/simple/

pip install tabulate - i https://pypi.tuna.tsinghua.edu.cn/simple/

做好準(zhǔn)備工作以后將loguru聚凹、tabulate模塊都導(dǎo)入進(jìn)來(lái)就OK了,沒(méi)有其他復(fù)雜的操作齐帚!

# It's a shortcut to create a logger with the default configuration.
from loguru import logger

# It's importing the function `tabulate` from the module `tabulate`.
from tabulate import tabulate

關(guān)于非標(biāo)準(zhǔn)庫(kù)tabulate妒牙,它的打印模式其實(shí)有很多,我們平常使用到的可能就是幾種比較常見(jiàn)的对妄,下面將tabulate所有的打印模式全部列舉出來(lái),有需要的大佬可以參考湘今。

'''
"plain"
"simple"
"github"
"grid"
"fancy_grid"
"pipe"
"orgtbl"
"jira"
"presto"
"psql"
"rst"
"mediawiki"
"moinmoin"
"youtrack"
"html"
"latex"
"latex_raw"
"latex_booktabs"
"textile"
'''

我們選擇其中的一種'grid'模式來(lái)看看效果如何,因?yàn)檫@種模式打印的數(shù)據(jù)記錄也是比較常見(jiàn)的剪菱。下面創(chuàng)建一個(gè)函數(shù)tab_grid_log打印一段數(shù)組形式的數(shù)據(jù)記錄摩瞎。

def tab_grid_log():
    """
    > This function takes a list of lists and returns a list of lists with the log of each element
    """
    # It's defining the header of the table.
    header = [u'姓名', u'年齡', u'班級(jí)', u'成績(jī)', u'表現(xiàn)']
    # It's defining a list of lists.
    table = [('Python', 20, 1710, 98, 5.0), ('Java', 22, 1810, 98, 4.9)]
    # It's printing the table with the `grid` format.
    logger.info(tabulate(table, headers=header, tablefmt='grid'))


tab_grid_log()


# 2022-09-17 18:33:00.472 | INFO     | __main__:tab_grid_log:66 - +--------+--------+--------+--------+--------+
# | 姓名   |   年齡 |   班級(jí) |   成績(jī) |   表現(xiàn) |
# +========+========+========+========+========+
# | Python |     20 |   1710 |     98 |    5   |
# +--------+--------+--------+--------+--------+
# | Java   |     22 |   1810 |     98 |    4.9 |
# +--------+--------+--------+--------+--------+
#
# Process finished with exit code 0

使用grid模式的打印的數(shù)據(jù)記錄就是宮格形式很便于查找日志中的數(shù)據(jù)記錄,也是我們經(jīng)常在日志記錄中使用的一種打印方法琅豆。

接下來(lái)我們隨便選擇一種模式再次進(jìn)行打印愉豺,這里就選擇html模式來(lái)看看效果吧,這種模式之前沒(méi)有使用過(guò)我很好奇它會(huì)打印出什么樣的效果茫因。

def tab_html_log():
    """
    > This function takes a log file and returns a html table of the log file
    """
    # It's defining the header of the table.
    header = [u'姓名', u'年齡', u'班級(jí)', u'成績(jī)', u'表現(xiàn)']
    # It's defining a list of lists.
    table = [('Python', 20, 1710, 98, 5.0), ('Java', 22, 1810, 98, 4.9)]
    # It's printing the table with the `html` format.
    logger.info(tabulate(table, headers=header, tablefmt='html'))


tab_html_log()

# 2022-09-17 18:37:50.383 | INFO     | __main__:tab_html_log:87 - <table>
# <thead>
# <tr><th>姓名  </th><th style="text-align: right;">  年齡</th><th style="text-align: right;">  班級(jí)</th><th style="text-align: right;">  成績(jī)</th><th style="text-align: right;">  表現(xiàn)</th></tr>
# </thead>
# <tbody>
# <tr><td>Python</td><td style="text-align: right;">    20</td><td style="text-align: right;">  1710</td><td style="text-align: right;">    98</td><td style="text-align: right;">   5  </td></tr>
# <tr><td>Java  </td><td style="text-align: right;">    22</td><td style="text-align: right;">  1810</td><td style="text-align: right;">    98</td><td style="text-align: right;">   4.9</td></tr>
# </tbody>
# </table>

從打印結(jié)果可以看出來(lái)了蚪拦,使用html模式的打印時(shí)實(shí)際上是生成html的源碼,這還是很智能的包括style的樣式屬性也填充了冻押。

【精彩推薦】

問(wèn)題記錄:為什們有的python底層代碼塊函數(shù)卻只有一個(gè)pass驰贷?

我使用pangu模塊做了一個(gè)文本格式化小工具!

ping命令的多種玩法洛巢,以前竟然只用它來(lái)測(cè)試網(wǎng)速括袒!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市稿茉,隨后出現(xiàn)的幾起案子锹锰,更是在濱河造成了極大的恐慌芥炭,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,839評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件恃慧,死亡現(xiàn)場(chǎng)離奇詭異园蝠,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)痢士,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)彪薛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人怠蹂,你說(shuō)我怎么就攤上這事善延。” “怎么了城侧?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,116評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵易遣,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我赞庶,道長(zhǎng)训挡,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,371評(píng)論 1 279
  • 正文 為了忘掉前任歧强,我火速辦了婚禮,結(jié)果婚禮上为肮,老公的妹妹穿的比我還像新娘摊册。我一直安慰自己,他們只是感情好颊艳,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布茅特。 她就那樣靜靜地躺著,像睡著了一般棋枕。 火紅的嫁衣襯著肌膚如雪白修。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,111評(píng)論 1 285
  • 那天重斑,我揣著相機(jī)與錄音兵睛,去河邊找鬼。 笑死窥浪,一個(gè)胖子當(dāng)著我的面吹牛祖很,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播漾脂,決...
    沈念sama閱讀 38,416評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼假颇,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了骨稿?” 一聲冷哼從身側(cè)響起笨鸡,我...
    開(kāi)封第一講書(shū)人閱讀 37,053評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤姜钳,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后形耗,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體傲须,經(jīng)...
    沈念sama閱讀 43,558評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評(píng)論 2 325
  • 正文 我和宋清朗相戀三年趟脂,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了泰讽。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,117評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡昔期,死狀恐怖已卸,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情硼一,我是刑警寧澤累澡,帶...
    沈念sama閱讀 33,756評(píng)論 4 324
  • 正文 年R本政府宣布,位于F島的核電站般贼,受9級(jí)特大地震影響愧哟,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜哼蛆,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評(píng)論 3 307
  • 文/蒙蒙 一蕊梧、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧腮介,春花似錦肥矢、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,315評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至灭抑,卻和暖如春十艾,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背腾节。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,539評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工忘嫉, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人禀倔。 一個(gè)月前我還...
    沈念sama閱讀 45,578評(píng)論 2 355
  • 正文 我出身青樓榄融,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親救湖。 傳聞我的和親對(duì)象是個(gè)殘疾皇子愧杯,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容