我在Linux Ubuntu 12.04系統。 我一直在使用這個代碼記錄所有輸出和錯誤+在INFO水平提升到一個文件的其他記錄..蟒蛇 - 登錄標準輸出,但獲得第二個空行每個條目
class LogFile(object):
def __init__(self, name=None):
self.logger = logging.getLogger(name)
def write(self, msg, level=logging.INFO):
self.logger.log(level, msg)
def flush(self):
for handler in self.logger.handlers:
handler.flush()
logging.basicConfig(level=logging.INFO,
format='%(asctime)s %(name)-12s %(levelname)-8s %(message)s',
datefmt='%m-%d-%y %H:%M:%S',
filename='logging.log')
sys.stdout = LogFile('stdout')
sys.stderr = LogFile('stderr')
出於某種原因,每當我獲得入門它總是跟着一個空行,這裏是一個我的日誌輸出很小:
08-09-12 09:52:54 stdout INFO CheckCon: Checking Portal access.
08-09-12 09:52:54 stdout INFO
08-09-12 09:52:54 stdout INFO CheckCon: Portal ping successful.
08-09-12 09:52:54 stdout INFO
08-09-12 09:53:08 stderr INFO Bottle server starting up (using PasteServer())...
08-09-12 09:53:08 stderr INFO Listening on http://0.0.0.0:8654/
08-09-12 09:53:08 stderr INFO Hit Ctrl-C to quit.
08-09-12 09:53:08 stdout INFO URI: Generated https://*****
08-09-12 09:53:08 stdout INFO
08-09-12 09:53:08 stdout INFO CheckCon: Checking Portal access.
08-09-12 09:53:08 stdout INFO
08-09-12 09:53:08 stdout INFO serving on 0.0.0.0:8654 view at http://127.0.0.1:8654
08-09-12 09:53:08 stdout INFO
08-09-12 09:53:08 stdout INFO CheckCon: Google ping successful.
08-09-12 09:53:08 stdout INFO
這是它在文件中的樣子,它們都是空的stdout行,然後是整個空行。 如果您發現瓶子服務器的輸出似乎沒有空行,但每行之間仍然有空行。
任何人都知道是什麼原因造成的,或者我可以如何防止它?
編輯:
從建議,我已經改變了我的所有打印到logging.info,我仍然有一個瓶子和粘貼服務器定期做打印的問題:\
所以我現在修改格式的日誌format='%(asctime)s %(levelname)-4s: %(message)s'
:
08-09-12 12:44:40 INFO: URI: Generated https://****
08-09-12 12:44:40 INFO: CheckCon: Checking Portal access.
08-09-12 12:44:40 INFO: serving on 0.0.0.0:9002 view at http://127.0.0.1:9002
08-09-12 12:44:40 INFO:
08-09-12 12:44:40 INFO: CheckCon: Google ping successful.
08-09-12 12:44:40 INFO: FullW: opening url: ****
08-09-12 12:44:40 INFO: FullW: showing.
08-09-12 12:44:40 INFO: LOOP: starting.
從我可以看到更多的空行也因爲空信息行,所以現在更接近獲得..
編輯澄清輸出: 有趣的一點:
+++08-09-12 13:01:04 stdout INFO serving on 0.0.0.0:9002 view at http://127.0.0.1:9002+++
+++08-09-12 13:01:04 stdout INFO
+++
最後編輯:
改變了我寫檢查,如果味精的長度在2個字符,而且消除了空行..仍然不是100%確定的原因。
def write(self, msg, level=logging.INFO):
if len(msg) < 2:
pass
else:
self.logger.log(level, msg)
另外,我建議把'level ='參數放到'__init __()',不要寫'()'。 – glglgl 2012-08-09 08:51:31
對不起glglgl我不明白你的意思? – 2012-08-09 10:53:21
爲了清楚起見,它的格式設置爲'+++%(asctime)s%(name)-12s%(levelname)-8s%(message)s +++'的運行情況如何? – Deestan 2012-08-09 10:57:34