我正在使用 web 框架序言和 ORM 規范在 nim 中撰寫一個 web 應用程式。我發現,當您使用--threads:on標志編譯時,通常在啟動應用程式時出現在終端中的序言和規范的日志訊息消失了。
這是因為日志訊息處理程式和日志級別被設定為執行緒區域變數,因此當創建新執行緒時,必須再次為該執行緒設定日志級別等。
但是,序言是實體化執行緒的那個,那么我如何為序言創建的每個執行緒正確設定它呢?
uj5u.com熱心網友回復:
感謝 prologue 的創建者 xflywind 的幫助,我找到了答案。
答案是prologue-events。當 prologue 創建一個執行緒時,它會觸發一個在啟動時注冊的 procs 串列,即所謂的事件。您需要做的就是定義一個設定日志級別并提供處理程式的事件。
proc setLoggingLevel() =
addHandler(newConsoleLogger())
logging.setLogFilter(lvlDebug)
let
event = initEvent(setLoggingLevel)
var
app = newApp(settings = settings, startup = @[event])
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/447427.html
下一篇:如何獨立于異步回圈運行阻塞代碼
