1
我正在從Enterprise Library遷移,其Write()api允許我們指定類別,嚴重性,標題和優先級等內容。log4net將自定義數據映射到數據庫中的字段
對於這個特定的例子,我想將一個用戶提供的值分類到數據庫字段中。例如考慮一個在線購物車,我想把[攝像機],[筆記本電腦],[路由器],[帳戶],[訂單],[發貨]等類別。
我知道log4net有一個屬性字段和我們正在做的是已經在我們的配置映射到數據庫:
<parameter>
<parameterName value="@MachineName" />
<dbType value="String" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%property{log4net:HostName}" />
</layout>
</parameter>
我希望我的API是這個樣子:
public class LogService
{
public LogService()
{
_log = LogManager.GetLogger(this.GetType());
}
public void WriteDebug(string message, string category)
{
_log.Debug(message);
}
}
我能做到這一點,那將是安全的?還是有另一種方式?
public void WriteDebug(string message, string category) { ThreadContext.Properties["Category"] = category _log.Debug(message); ThreadContext.Properties["Category"] = ""; }
我們確實有很多的異步代碼在我們的應用程序代碼,所以,我很擔心,這是不是線程安全的。