2015-10-17 66 views
1

我有這樣的格式化Django的如何獲得在Django記錄儀應用程序名稱

FORMAT = "[%(filename)s:%(lineno)s - %(funcName)20s() ] %(message)s"

文件名我得到的是

views.py

既然是作爲其難以混亂從哪個模塊查看views.py。

是否有記錄格式任何獲得應用程序的名字

+0

你如何得到文件名? os.path.basename(\ _ \ _ FILE__)? – ryuusenshi

+0

@ryuusenshi,它是默認情況下可用,我沒有手動執行 –

回答

3

使用pathname,而不是filename在你的日誌記錄配置。

FORMAT = "[%(pathname)s:%(lineno)s - %(funcName)20s() ] %(message)s" 

您還可以使用其他變量 - 檢查logging module documentation的列表。


需要注意的是,如果你使用獲取一個logger = logging.getLogger(__name__)例如Logger(這是做的常用方法),你也可以使用name檢索模塊名稱(例如myapp.views)。

這是(可以說)更好的做法,但如果你正在做, logger = logging.getLogger("mylogger")logger = logging.getLogger()

+0

謝謝你。我在哪裏可以看到我可以使用的其他變量。任何文件。 2.我的完整路徑非常大。有沒有辦法我可以修改使用字符串替換。我的意思是使用任何回調 –

+0

@JohnKaff有一個鏈接到我的答案中的文檔。該文檔列出了您可以使用的其他變量。 –

+0

我想使用'__name__',但後來我無法獲取自定義記錄器。那麼它會轉到默認文件螺母我的自定義文件 –

相關問題