我在slf4j後面使用了logback,並想知道如何從org.slf4j.Logger
實例獲取OutputStream
引用。用例是Shrinkwrap的Archive.writeTo(OutputStream, ...)
方法。如何從slf4j記錄器獲取OutputStream引用?
我知道可以通過創建ByteArrayOutputStream
來解決此參考的需要,將其傳遞並將其內容寫入記錄器。我知道那stdout and stderr can be redirected to a logger in general。話雖如此,我正在尋找對這個問題的直接回答。如果沒有,我會建議給slf4j添加一個機制。
我正在使用slf4j API 1.7.5和logback 1.2.2。
我不認爲增加一個接受大量二進制數據而沒有日誌級別和清除消息分界的API是有意義的。作爲想要記錄消息的應用程序,您需要製作有意義的單獨日誌消息(每個日誌消息都有一個級別,「正常大小」消息,可能是一些映射的上下文屬性)。一個OutputStream對於二進制數據來說只是一個愚蠢的陷阱。 – Thilo
在https://jira.qos.ch/browse/LBCLASSIC-118 –
上提供了一個OutputStream引用作爲'Logger。[level]參數的參數「,但這需要按照你的建議工作,雖然:你會得到來自記錄器的OutputStream。如果你將一個OutputStream傳遞給記錄器,它所能做的就是寫入它。沒有辦法從OutputStream讀取。 – Thilo