簡單好用的python日誌類的定義及引用

2021-10-06 12:38:23 字數 2351 閱讀 3563

python 日誌類的編寫

對於初學者的小白來說,定位問題並解決是至關重要的,在專案裡列印日誌能方便快速的定位問題。我帶來的是非常簡單的日誌類定義,網上的日誌類雖然很多,但是如何呼叫有一些缺失。接下來遍上**邊解釋

import logging

import os

from datetime import datetime

import concurrent.futures

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] %(message)s'

,'%y-%m-%d %h:%m:%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)

self.executor = concurrent.futures.threadpoolexecutor(max_workers=1)

defdebug

(self, message,

*args)

:

self.executor.submit(self.logger.debug, message,

*args)

definfo

(self, message,

*args)

:

self.executor.submit(self.logger.info, message,

*args)

defwarning

(self, message,

*args)

:

self.executor.submit(self.logger.warn, message,

*args)

deferror

(self, message,

*args)

:

self.executor.submit(self.logger.error, message,

*args)

defcritical

(self, message,

*args)

:

self.executor.submit(self.logger.critical, message,

*args)

defloggers

(log_file)

: t = datetime.now(

).strftime(

"%y-%m-%d_%h"

) log_file = log_file+r"\scan-engine@{}.log"

.format

(t) cmd_log_level = os.environ.get(

"cmd_log_level"

, logging.debug)

file_log_level = os.environ.get(

"file_log_level"

, logging.debug)

logger = logger(log_file, cmd_log_level, file_log_level)

return logger

使用上面的**單獨放在utils/logger.py中,設定好路徑,在實際應用專案中引用。

如下:

from utils.logger import loggers

logger = loggers(

"放置日誌的資料夾"

)logger.info(

"要記錄的資訊"

)

Python好用的日誌模組

乙個比較好用的日誌模組 基於檔案大小切分,只保留固定個數日誌檔案 import os import logging import logging.handlers def init logger log file dir path os.path.dirname log file try if no...

C 簡單的日誌類

簡單的日誌記錄類.日誌而已,何必那麼複雜!w.j.chang 2013.12.13 說明 easylog.h 1,簡單的單件實現 自動垃圾 2,使用方法 easylog inst log run.3,日誌記錄結果 run.2013.12.13 16 38 42 friday pragma once ...

簡單寫日誌類

public class logmanager 設定要寫入日誌的屬性 if system.io.file.exists sfileurl filestream fs new filestream sfileurl,filemode.openorcreate,fileaccess.write stre...