我是使用Python進行編程的初學者。使用python 2.7.9編寫日誌文件中的消息格式
我嘗試使用日誌模塊重定向日誌文件,但我面臨着以下問題:
在我的日誌文件命名爲「是error.log」我的級別名稱和日期是在每個日誌文件行中重複出現。
有沒有辦法避免這個問題?
我正在使用Python 2.7.9。
這裏是我下面的代碼:
# error.py
# -*- coding: utf-8 -*-
import logging
import sys
logging.basicConfig(
level=logging.ERROR,
format="%(levelname)s - %(asctime)s - %(message)s",
filename="error.log",
filemode='w'
)
class StreamToLogger(object):
def __init__(self, logger, log_level=logging.DEBUG):
self.logger = logger
self.log_level = log_level
def write(self, text):
for line in text.rstrip().splitlines():
self.logger.log(self.log_level, line.rstrip())
stdout_logger = logging.getLogger('STDOUT')
sl = StreamToLogger(stdout_logger, logging.INFO)
sys.stdout = sl
stderr_logger = logging.getLogger('STDERR')
sl = StreamToLogger(stderr_logger, logging.ERROR)
sys.stderr = sl
#Voluntary error for display in the log
print message
當我運行這個python腳本,我得到以下文件:
# the error.log file
ERROR - 2015-05-10 17:24:40,726 - Traceback (most recent call last):
ERROR - 2015-05-10 17:24:40,726 - File "D:\error\error.py", line 27, in <module>
ERROR - 2015-05-10 17:24:40,726 - print message
ERROR - 2015-05-10 17:24:40,726 - NameError
ERROR - 2015-05-10 17:24:40,726 - :
ERROR - 2015-05-10 17:24:40,726 - name 'message' is not defined
有沒有辦法避免的級別名稱的重複和使我的錯誤消息更具可讀性的日期?
也許嘗試你的'format'變量更改爲這樣的事'格式=「%(消息) s「' – Eenoku
啊,謝謝大家。 我想我們可以使用諸如過濾器之類的方法來做到這一點。 – ab92