2017-03-25 41 views
0

我是新來的紅寶石,我面臨的情況。每個線程的日誌文件紅寶石

我有3個類,我爲每個類創建1個線程。問題是,我有3個類不同屬於任何一個類,並在一個單獨的文件中使用相同的功能。

我正在使用ruby-1.9.3 Logger。我想爲每個線程創建一個單獨的日誌文件,我該怎麼做?

+0

您可以通過執行來獲取當前線程ID,例如'Thread.current.object_id'。然後你可以使用這個ID來創建一個日誌文件名。 –

+0

我這樣做,我覺得這是一個好主意,但唯一的事情是我想給一個日誌文件的名稱,以便它可以被理解爲該日誌文件的類是什麼! 所以我在創建線程的時候嘗試了Thread.current [:name] =「A」,但是當它到達其他類的函數時,它不能通過Thread.current [:name] 錯過某些東西來檢索該值? 謝謝 –

+0

是的,有可能你做錯了什麼。 –

回答

1
  • 在每個類中初始化記錄器,例如在具有緩存的類方法中。
  • 從3個類中爲您使用的方法添加一個logger參數。
  • 每次使用這些方法時都要將當前記錄器作爲參數傳遞。
+0

我不能修改類定義,必須想出一個方法而不修改它 –