python中的日誌函式20201124

2021-10-10 19:39:15 字數 3578 閱讀 8716

初始化 logger = logging.getlogger(「endlesscode」),getlogger()方法後面最好加上所要日誌記錄的模組名字,後面的日誌格式中的%(name)s 對應的是這裡的模組名字

設定級別 logger.setlevel(logging.debug),logging中有notset < debug < info < warning < error < critical這幾種級別,日誌會記錄設定級別以上的日誌

handler,常用的是streamhandler和filehandler,windows下你可以簡單理解為乙個是console和檔案日誌,乙個列印在cmd視窗上,乙個記錄在乙個檔案上

formatter,定義了最終log資訊的順序,結構和內容,我喜歡用這樣的格式

'[%(asctime)s] [%(levelname)s] %(message)s', '%y-%m-%d %h:%m:%s',

%(name)s logger的名字

%(levelname)s 文字形式的日誌級別

%(message)s 使用者輸出的訊息

%(asctime)s 字串形式的當前時間。預設格式是 「2003-07-08 16:49:45,896」。逗號後面的是毫秒

%(levelno)s 數字形式的日誌級別

%(pathname)s 呼叫日誌輸出函式的模組的完整路徑名,可能沒有

%(filename)s 呼叫日誌輸出函式的模組的檔名

%(module)s 呼叫日誌輸出函式的模組名

%(funcname)s 呼叫日誌輸出函式的函式名

%(lineno)d 呼叫日誌輸出函式的語句所在的**行

%(created)f 當前時間,用unix標準的表示時間的浮 點數表示

%(relativecreated)d 輸出日誌資訊時的,自logger建立以 來的毫秒數

%(thread)d 執行緒id。可能沒有

%(threadname)s 執行緒名。可能沒有

%(process)d 程序id。可能沒有

godspeed_pylog.py**如下:

#!/user/bin/env python

#-*-coding: utf-8-*-

#@time : 2020/11/24 16:54

#@author : godspeed

#@file : godspeed_pylog.py

#@software : pycharm

#! /usr/bin/env python

#coding=gbk

import logging,os

import ctypes

foreground_white =

0x0007

foreground_blue =

0x01

# text color contains blue.

foreground_green=

0x02

# text color contains green.

foreground_red =

0x04

# text color contains red.

foreground_yellow = foreground_red | foreground_green

std_output_handle=-11

std_out_handle = ctypes.windll.kernel32.getstdhandle(std_output_handle)

defset_color

(color, handle=std_out_handle)

:bool

= ctypes.windll.kernel32.setconsoletextattribute(handle, color)

return

bool

class

logger

:def

__init__

(self, path,clevel = logging.debug,flevel = logging.debug)

: self.logger = logging.getlogger(path)

self.logger.setlevel(logging.debug)

#fmt = logging.formatter('[%(asctime)s] [%(levelname)s] [%(lineno)d] %(message)s', '%y-%m-%d %h:%m:%s')

fmt = logging.formatter(

'[%(asctime)s] [%(levelname)s] [%(filename)s] [line:%(lineno)d] %(message)s'

)#設定cmd日誌

sh = logging.streamhandler(

) sh.setformatter(fmt)

sh.setlevel(clevel)

#設定檔案日誌

fh = logging.filehandler(path)

fh.setformatter(fmt)

fh.setlevel(flevel)

self.logger.addhandler(sh)

self.logger.addhandler(fh)

defdebug

(self,message)

: self.logger.debug(message)

definfo

(self,message)

: self.logger.info(message)

defwar

(self,message,color=foreground_yellow)

: set_color(color)

self.logger.warning(message)

set_color(foreground_white)

deferror

(self,message,color=foreground_red)

: set_color(color)

self.logger.error(message)

set_color(foreground_white)

defcri

(self,message)

: self.logger.critical(message)

if __name__ ==

'__main__'

: logyyx = logger(

'yyx.log'

,logging.warning,logging.debug)

logyyx.debug(

'乙個debug資訊'

) logyyx.info(

'乙個info資訊'

) logyyx.war(

'乙個warning資訊'

) logyyx.error(

'乙個error資訊'

) logyyx.cri(

'乙個致命critical資訊'

)

Python學習日誌之Python函式

python日誌之python函式 一 認識函式 1.什麼是函式 函式,function,通俗來說,函式,就是功能的意思,函式是用來封裝特定功能的,比如,在python中,len 是乙個函式,len 這個函式實現的功能可能是返回乙個字串的長度,所以說len 這個函式他的特定功能就是返回長度,再比如,...

python函式實驗 Python中的函式

一 定義 1 def函式名 引數 2 3 4 函式體5 6 返回值 函式的定義主要有如下要點 def 表示函式的關鍵字 函式名 函式的名稱,日後根據函式名呼叫函式,用引號標記即可 函式體 函式中進行一系列的邏輯計算,如 傳送郵件 計算出 11,22,38,888,2 中的最大數等.引數 為函式體提供...

python中的lo函式 Python 函式

函式 內建函式 print input len type print hello world 函式 引數 定義函式 def greet name print name 早上好 return 第一行def的意思是定義 define greet是 函式名 自己取的 再搭配乙個括號和冒號,括號裡面的nam...