2017-07-27 99 views
0

我有一個NLog配置,對我的Web應用程序(ASP.NET Core)工作得很好。 現在我正在嘗試將NLog添加到我的webjobs中,但我無法弄清楚如何去做。使用NLog登錄Azure Web作業

在webjob項目中的Program.cs中,我需要以某種方式注入IHostingEnvironment和ILoggerFactory(兩者都注入到Web應用程序的StartUp構造函數中)。一旦我知道如何做到這一點,我應該能夠完成配置。

如果這是不可能的,我有什麼替代方案?

我並不熱衷於使用傳遞到webjob方法的TextWriter類,因爲我想這將很難提取日誌並將它們路由到最終希望它去的地方。

回答

1

以下是在WebJob中使用NLog的步驟。

第1步,爲您的WebJob安裝NLog.Config包。

Install-Package NLog.Config 

第2步,將規則和目標添加到NLog.config文件。以下是將日誌寫入文件的示例。

<?xml version="1.0" encoding="utf-8" ?> 
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <targets> 
    <target name="logfile" xsi:type="File" fileName="file.txt" /> 
    </targets> 
    <rules> 
    <logger name="*" minlevel="Info" writeTo="logfile" /> 
    </rules> 
</nlog> 

第3步,使用LogManager類獲取記錄器實例。

private static Logger logger = LogManager.GetLogger("MyLog"); 

第4步,獲得記錄器實例後,您可以使用以下代碼編寫日誌。

logger.Trace("Sample trace message"); 
logger.Debug("Sample debug message"); 
+0

這對任何人都適用嗎?我沒有看到任何創建的文件。也許這是因爲我有一個.NET核心應用程序。 –