一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Python寫入到日志文件完整代碼

麥辣雞腿堡 ? 來源:Python都知道 ? 作者:了不起 ? 2023-10-07 11:50 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

寫入到日志文件

上面我們說的是將日志打印到控制臺中,但是我們Python代碼寫完并且在運行當(dāng)中后,我們就不可能這樣玩了,所以我們需要將日志保存到一個日志文件中

完整代碼如下:

import coloredlogs
import logging


def func_name():
    # 創(chuàng)建文件handler
    file_handler = logging.FileHandler('log_file.log')

    # 設(shè)置日志格式
    formatter = logging.Formatter('%(asctime)s - %(module)s - %(funcName)s - %(levelname)s - %(message)s')
    file_handler.setFormatter(formatter)

    # 安裝coloredlogs并設(shè)置級別
    level_styles = coloredlogs.DEFAULT_LEVEL_STYLES.copy()
    coloredlogs.install(level="DEBUG", level_styles=level_styles,
                        fmt='%(asctime)s - %(module)s - %(funcName)s - %(levelname)s - %(message)s')

    # 獲取logger 并添加文件handler
    logger = logging.getLogger()
    logger.addHandler(file_handler)

    # 移除默認StreamHandler
    logger.removeHandler(logging.StreamHandler())

    # 測試輸出日志
    logger.debug('debug message')
    logger.info('info message')
    logger.error('error message')
    logger.warning('warning message')


func_name()

打開我們log_file.log文件后,就可以看到我們生成的日志信息

圖片

可以看到我們生成的日志文件中不同級別的日志還是使用的是一樣的顏色。那這是為什么呢?

其實coloredlogs 庫只是在終端輸出時給日志添加了顏色,但寫入文件時colors并不能保留。

這是因為終端輸出和文件輸出使用的是不同的handler:

  • 終端輸出使用的是StreamHandler,可以 interpreter 處理ANSI色彩編碼顯示顏色。
  • 文件輸出使用的是FileHandler,寫入的僅是純文本,無法保存ANSI編碼的顏色信息。

ANSI色彩編碼只有在支持其的終端才能渲染為顏色,一旦寫入文件就會失去這些編碼信息。所以使用coloredlogs時,日志文件內(nèi)實際保存的是未著色的原始文本。

如果想要文件中也保存顏色信息,可以考慮使用支持ANSI色彩的文件格式,比如HTML。然后通過logging模塊支持的HTML Formatter輸出彩色日志到HTML文件中,不過這種情況下就失去了純文本文件的可閱讀性。
綜上,coloredlogs只是在終端美化日志展示效果,文件輸出不保存顏色是正常情況。如果必須存儲顏色,可以輸出為HTML等格式,但復(fù)雜度會增加。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 文件
    +關(guān)注

    關(guān)注

    1

    文章

    579

    瀏覽量

    25376
  • 日志
    +關(guān)注

    關(guān)注

    0

    文章

    144

    瀏覽量

    10869
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4827

    瀏覽量

    86794
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    linux虛擬環(huán)境中調(diào)用Linux 版matlab編譯的python庫時出錯

    matlab代碼編譯為CAO_pythonpython庫,其中cp_Main_python.m為入口文件,編譯后生成的
    發(fā)表于 07-18 10:40

    詳解journalctl日志管理

    systemd 提供了自己的日志系統(tǒng)(logging system),稱為 journal。使用 systemd 日志,無需額外安裝日志服務(wù)(syslog)。
    的頭像 發(fā)表于 06-05 17:22 ?379次閱讀
    詳解journalctl<b class='flag-5'>日志</b>管理

    跟老齊學(xué)Python:從入門精通

    礎(chǔ)的學(xué)習(xí)者介紹一門時下比較流行、并且用途比較廣泛的編程語言,所以,本書讀起來不晦澀,并且在其中穿插了很多貌似與Python 編程無關(guān),但與學(xué)習(xí)者未來程序員職業(yè)生涯有關(guān)的內(nèi)容。 獲取完整文檔資料可下載附件哦!?。?! 如果內(nèi)容有幫助可以關(guān)注、點贊、評論支持一下哦~
    發(fā)表于 06-03 16:10

    基于RV1126開發(fā)板限制系統(tǒng)日志大小教程

    無論管理什么系統(tǒng),對日志文件的監(jiān)控、調(diào)用、管理都是其中重要的一部分。服務(wù)器問題的解決都是從查看系統(tǒng)(錯誤)日志開始的。系統(tǒng)日志是記錄系統(tǒng)硬件狀況、內(nèi)核動作、軟件啟動、用戶動作等各項信息
    的頭像 發(fā)表于 04-16 11:18 ?236次閱讀
    基于RV1126開發(fā)板限制系統(tǒng)<b class='flag-5'>日志</b>大小教程

    python入門圣經(jīng)-高清電子書(建議下載)

    和Pygal 等強大的Python 庫和工具介紹,以及列表、字典、if 語句、類、文件與異常、代碼測試等內(nèi)容; 第二部分將理論付諸實踐,講解如何開發(fā)三個項目,包括簡單的Python
    發(fā)表于 04-10 16:53

    創(chuàng)建了用于OpenVINO?推理的自定義C++和Python代碼,從C++代碼中獲得的結(jié)果與Python代碼不同是為什么?

    創(chuàng)建了用于OpenVINO?推理的自定義 C++ 和 Python* 代碼。 在兩個推理過程中使用相同的圖像和模型。 從 C++ 代碼中獲得的結(jié)果與 Python*
    發(fā)表于 03-06 06:22

    如何將python文件導(dǎo)入ROS系統(tǒng)中

    本文通過使用myCobot機械臂進行QR碼視覺追蹤的實踐案例分析,介紹如何將 python 文件導(dǎo)入 ROS 系統(tǒng)中。
    的頭像 發(fā)表于 02-11 11:08 ?808次閱讀
    如何將<b class='flag-5'>python</b><b class='flag-5'>文件</b>導(dǎo)入<b class='flag-5'>到</b>ROS系統(tǒng)中

    Linux實時查看日志的四種命令詳解

    如何在Linux中實時查看日志文件的內(nèi)容?那么有很多實用程序可以幫助用戶在文件更改或不斷更新時輸出文件的內(nèi)容。在Linux中實時顯示文件內(nèi)容
    的頭像 發(fā)表于 01-13 10:45 ?3079次閱讀
    Linux實時查看<b class='flag-5'>日志</b>的四種命令詳解

    Wine開發(fā)系列——如何使用Wine日志調(diào)試問題

    ? 輸出調(diào)試日志是調(diào)試程序的一種常見方法,尤其是處理那些難以捉摸的多線程錯誤、隨機崩潰等問題時。 通過在合適的位置輸出調(diào)試日志,可以幫助我們更快地定位問題所在。 對于不熟悉的代碼,經(jīng)常打日志
    的頭像 發(fā)表于 01-06 11:29 ?1007次閱讀

    nginx日志配置方法

    access_log用來定義日志級別,日志位置。
    的頭像 發(fā)表于 10-24 17:43 ?590次閱讀

    日志篇:模組日志總體介紹

    的各種故障進行分析。 二、4G模組日志的幾種類型界 4G 模組的日志有兩種類型: 業(yè)務(wù)日志和底層日志。業(yè)務(wù)日志是指在用模組的客戶
    的頭像 發(fā)表于 10-24 07:16 ?590次閱讀
    <b class='flag-5'>日志</b>篇:模組<b class='flag-5'>日志</b>總體介紹

    hex文件如何查看原c語言代碼

    直接將 .hex 文件轉(zhuǎn)換回原始的 C 語言代碼是不可能的,因為 .hex 文件是二進制文件,它包含了單片機程序編譯后的機器碼,這些機器碼與原始的 C 語言
    的頭像 發(fā)表于 09-02 10:37 ?4962次閱讀

    linux日志管理之journalctl命令

    journalctl 用來查詢 systemd-journald 服務(wù)收集日志。systemd-journald 服務(wù)是 systemd init 系統(tǒng)提供的收集系統(tǒng)日志的服務(wù)。
    的頭像 發(fā)表于 08-14 18:18 ?3801次閱讀
    linux<b class='flag-5'>日志</b>管理之journalctl命令

    PDF文件批量打印源代碼

    壓縮包中包含可批量打印PDF文件Python代碼,可以借助PYcharm工具執(zhí)行,實現(xiàn)多PDF文件同時打印。
    發(fā)表于 08-08 14:26 ?0次下載

    日志框架簡介-Slf4j+Logback入門實踐

    結(jié)果不受日志的有無影響,但沒有日志的應(yīng)用程序是不完整的,甚至可以說是有缺陷的。優(yōu)秀的日志系統(tǒng)可以 記錄操作軌跡 、 監(jiān)控系統(tǒng)運行狀態(tài) 和 解決系統(tǒng)故障 。 Java
    的頭像 發(fā)表于 07-30 10:00 ?1528次閱讀
    <b class='flag-5'>日志</b>框架簡介-Slf4j+Logback入門實踐