.NET Core版本:1.0.0-rc2
Visual Studio版本:Microsoft Visual Studio Community 2015 Update 2
開發及執行平臺:Windows 7 專業版 Service Pack 1
-
新增一個控制檯專案(ConsoleLogApp)
-
在project.json檔案中新增依賴項
{
"version": "1.0.0-*",
"buildOptions": {
"emitEntryPoint": true
},
"dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.0-rc2-3002702"
},
"Microsoft.Extensions.DependencyInjection": "1.0.0-rc2-final",
"Microsoft.Extensions.Logging": "1.0.0-rc2-final",
"Microsoft.Extensions.Logging.Console": "1.0.0-rc2-final",
"Microsoft.Extensions.Configuration.Json": "1.0.0-rc2-final",
"System.Text.Encoding": "4.0.11-rc2-24027",
"System.Text.Encoding.CodePages": "4.0.1-rc2-24027"
},
"frameworks": {
"netcoreapp1.0": {
"imports": "dnxcore50"
}
}
}
-
新增日誌輸出配置檔案(log.json)
我們這個控制檯程式主要目的是用來列印輸出日誌,所以這裡用一個單獨的日誌配置檔案來儲存相關日誌相關選項,比如:是否包括上下文,日誌輸出最低等級等。
{
"IncludeScopes": false,
"LogLevel": {
"App": "Warning"
}
}
IncludeScopes為false讓控制檯日誌輸出時不包含上下文;LogLevel的最低等級設定為:Warning,只有高於這個級別的日誌才會輸出。App為日誌的CategoryName。
-
入口程式
using System;
using Microsoft.Extensions.Configuration;
using System.Text;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
namespace ConsoleLogApp
{
public class Program
{
public static void Main(string[] args)
{
// 支援中文編碼
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
// 載入日誌配置檔案
var setttins = new ConfigurationBuilder().AddJsonFile("log.json").Build();
// 建立ConsoleLogProvider並根據日誌類目名稱(CategoryName)生成Logger例項
var logger = new ServiceCollection().AddLogging().BuildServiceProvider().GetService<ILoggerFactory>().AddConsole(setttins).CreateLogger("App");
// 設定事件ID
const int eventId = 888888;
// 輸出正常提示日誌
logger.LogInformation(eventId, "訂單號({OderNo})", "12345678000");
// 輸出警示日誌
logger.LogWarning(eventId, "待處理訂單數達到5分鐘內的預警值:{max}", 2000);
// 輸出錯誤日誌
logger.LogError(eventId, "資料庫連線超時");
Console.ReadLine();
}
}
}
-
使用“dotnet restore”來還原依賴項
- 在Git Bash中把當前目錄切換到專案的根目錄下(本例為:D:\ConsoleLogApp)
- dotnet restore命令是用來尋找當前目錄下的專案檔案(project.json),然後利用NuGet庫還原整個專案的依賴庫,然後遍歷每個目錄生成專案檔案,繼續還原該專案檔案中依賴項。
-
使用“dotnet build”來編譯整個專案
編譯成功後,我們在專案根目錄下的bin目錄中發現編譯後的資料夾(D:\ConsoleLogApp\bin\Debug\netcoreapp1.0),命令執行成功後生成了一個Debug目錄並在此目錄下生成了一個以應用名稱命名的資料夾(netcoreapp1.0,這個名稱是在project.json中配置的)
-
使用“dotnet run”來執行程式
我們可以看到info級別的輸出日誌被過濾掉了,只有Warning以上的日誌被輸出了。