是否可以修飾/擴展python標準日誌記錄系統,以便在調用日誌記錄方法時還可以記錄文件和行號,或者在其中調用調用它的方法?如何在Python中記錄源文件名和行號
54
A
回答
114
當然,在日誌文檔中檢查formatters。特別是lineno和pathname變量。
%(路徑)■其中記錄呼叫發出(如果可用)的源文件的完整路徑。
%(filename)s路徑名的文件名部分。
%(模塊)s模塊(文件名的名稱部分)。
%(funcName)s包含日誌記錄調用的函數的名稱。
%(lineno)d發出日誌記錄調用的源行號(如果可用)。
看起來是這樣的:
formatter = logging.Formatter('[%(asctime)s] p%(process)s {%(pathname)s:%(lineno)d} %(levelname)s - %(message)s','%m-%d %H:%M:%S')
11
論Seb's very useful answer頂部,這裏是一個方便的代碼片段演示了一個合理的格式記錄器用法:
#!/usr/bin/env python
import logging
logging.basicConfig(format='%(asctime)s,%(msecs)d %(levelname)-8s [%(filename)s:%(lineno)d] %(message)s',
datefmt='%d-%m-%Y:%H:%M:%S',
level=logging.DEBUG)
logger = logging.getLogger('stackoverflow_rocks')
logger.debug("This is a debug log")
logger.info("This is an info log")
logger.critical("This is critical")
logger.error("An error occurred")
生成的輸出:
06-06-2017:17:07:02,158 DEBUG [log.py:11] This is a debug log
06-06-2017:17:07:02,158 INFO [log.py:12] This is an info log
06-06-2017:17:07:02,158 CRITICAL [log.py:13] This is critical
06-06-2017:17:07:02,158 ERROR [log.py:14] An error occurred
+0
請使用以下格式:formatter = logging.Formatter( '%(asctime)s,%(levelname)-8s [%(filename)s:%(module)s:%(funcName)s:%(lineno) d]%(消息)s') – 2018-03-08 09:43:13
相關問題
- 1. 如何在可執行文件中記錄序列號?
- 2. 如何獲取源文件名和類型成員的行號?
- 3. 在Python中記錄事件;如何在類中記錄事件?
- 4. 如何在GAE Python logging.info日誌中擁有文件名和行號?
- 5. Python記錄器動態文件名
- 6. 如何在Perl中獲取文件名和行號?
- 7. 如何打印Python日誌記錄器中的源代碼行
- 8. 如何從os_log()中找到源文件和行號
- 9. awk:除零輸入記錄編號1,文件源行編號1
- 10. 在命令提示符下運行Python和記錄到文件
- 11. 軌道4,如何記錄文件與行號
- 12. 如何在Python中使用日期和時間戳記錄和保存文件
- 13. Python日誌記錄和旋轉文件
- 14. 如何在Python中獲取目錄中的文件名列表
- 15. 如何在目錄中串行運行多個python文件時打印錯誤的python文件名?
- 16. 如何在Django日誌文件中記錄Python警告?
- 17. 如何在文件中記錄異常?
- 18. 如何在IsolatedStorage中更改目錄名稱和文件名稱
- 19. 有沒有辦法在Go中獲取源代碼文件名和行號?
- 20. 如何在Python中更改文件名和擴展名?
- 21. Python記錄多個文件
- 22. Python中文件名中的冒號
- 23. 在項目數據源中錄製電話號碼和全名
- 24. 記錄文件名,日誌中的行號。我需要通過StackFrame嗎?
- 25. 如何獲取Python日誌記錄模塊當前正在記錄的文件?
- 26. 記錄器與文件名,行和時間戳
- 27. 如何記錄在Python中輸入的最高和最低編號?
- 28. Python - print() - 調試-show文件和行號
- 29. 螞蟻replaceTokens行號和文件名
- 30. log4cplus不打印文件名和行號
+1:Quote the文檔。 – 2009-02-10 16:35:47