ASP .NET Core Web API_ 03_ 日志logger

Log

  1. 默認(rèn)自帶log >>>Program
WebHost.CreateDefaultBuilder()中做了默認(rèn)配置
CreateDefualtBuilder
  1. Log API
    ASP .NET Core 提供了一套Log API, 它可以各種各樣的Log提供商配合使用. http://www.cnblogs.com/cgzl/p/9019314.html
    內(nèi)置6個Log提供商:
  • Console
  • Debug
  • EventSource
  • EventLog
  • TraceSource
  • Azure App Service
    第三方提供商:
  • Nlog
  • Serilog

ILogger接口

  1. 創(chuàng)建ILogger的時候指明分類,分類名約定是調(diào)用類的全名(string) PostController例如:
    依賴注入ILogger<TCategoryName>
    ILogger

    調(diào)用

    OK
  2. 在ILoggerFactory 上調(diào)用CreateLogger方法時可以指定分類的名稱.
[Route("api/posts")]
    public class PostController : Controller
    {
        private readonly IPostRepository _postRepository;
        private readonly IUnitOfWork _unitOfWork;
        private readonly ILogger _logger;

        public PostController(
            IPostRepository postRepository,
            IUnitOfWork unitOfWork,
            ILoggerFactory loggerFactory)
        {
            _postRepository = postRepository;
            _unitOfWork = unitOfWork;
            _logger = loggerFactory.CreateLogger("Blog.Api.Controllers.PostController");
        }

        [HttpGet]
        public async Task<IActionResult> Get()
        {
            var posts = await _postRepository.GetAllPostsAsync();
            _logger.LogError("Get All Posts ......");
            return Ok(posts);
        }

ILogger其他

  1. 級別
    • LogTrace(), 0惧眠,記錄追蹤信息
    • LogDebug(), 1趁矾,記錄調(diào)試信息
    • LogInformation(), 2纽门,記錄信息性的事情
    • LogWarning(), 3,記錄警告信息
    • LogError(), 4煤惩,記錄異常
    • LogCritical(), 5辑舷,用來記錄嚴(yán)重的事情
  2. Event ID
  3. 信息模板
  4. 異常
  5. 過濾
  6. 作用范圍
    ……
LogError

添加Serilog

  1. 安裝包
    Install-Package Serilog
    Install-Package Serilog.AspNetCore
    Sinks日志輸出媒介(控制臺、文件蔓搞、sqlserver等)
    Install-Package Serilog.Sinks.Console
    Install-Package Serilog.Sinks.File
  2. Main()中配置
public static void Main(string[] args)
        {
            //配置Serilog
            Log.Logger = new LoggerConfiguration()
                //最低輸出級別為Debug
                .MinimumLevel.Debug()
                //以Microsoft開頭的特殊,調(diào)整最小級別為Information
                .MinimumLevel.Override("Microsoft", LogEventLevel.Information) 
                .Enrich.FromLogContext()
                .WriteTo.Console() 
                .WriteTo.File(Path.Combine("logs", @"log.txt"), rollingInterval: RollingInterval.Day)
                .CreateLogger();

            var host = CreateWebHostBuilder(args).Build();

            //種子文件
            using (var scope = host.Services.CreateScope())
            {
                var services = scope.ServiceProvider;
                var loggerFactory = services.GetRequiredService<ILoggerFactory>();
                try
                {
                    var applicationContext = services.GetRequiredService<ApplicationContext>();
                    //調(diào)用方法創(chuàng)建種子數(shù)據(jù)
                    Seed.SeedAsync(applicationContext, loggerFactory).Wait();
                }
                catch (Exception e) 
                {
                    var logger = loggerFactory.CreateLogger<Program>();
                    logger.LogError(e, "Error occured seeding the Database.");
                }
            }

            host.Run();
        }

        public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                //.UseStartup<Startup>();
                .UseStartup(typeof(StartupDevelopment).GetTypeInfo().Assembly.FullName)
                .UseSerilog(); //調(diào)用Serilog,覆蓋掉CreateDefaultBuilder中的默認(rèn)配置        
    }
Console

File
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市随橘,隨后出現(xiàn)的幾起案子喂分,更是在濱河造成了極大的恐慌,老刑警劉巖机蔗,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件妻顶,死亡現(xiàn)場離奇詭異,居然都是意外死亡蜒车,警方通過查閱死者的電腦和手機(jī)讳嘱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來酿愧,“玉大人沥潭,你說我怎么就攤上這事℃业玻” “怎么了钝鸽?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長庞钢。 經(jīng)常有香客問我拔恰,道長,這世上最難降的妖魔是什么基括? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任颜懊,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘河爹。我一直安慰自己匠璧,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布咸这。 她就那樣靜靜地躺著夷恍,像睡著了一般。 火紅的嫁衣襯著肌膚如雪媳维。 梳的紋絲不亂的頭發(fā)上酿雪,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天,我揣著相機(jī)與錄音侄刽,去河邊找鬼指黎。 笑死,一個胖子當(dāng)著我的面吹牛唠梨,可吹牛的內(nèi)容都是我干的袋励。 我是一名探鬼主播侥啤,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼当叭,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了盖灸?” 一聲冷哼從身側(cè)響起蚁鳖,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎赁炎,沒想到半個月后醉箕,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡徙垫,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年讥裤,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片姻报。...
    茶點(diǎn)故事閱讀 39,991評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡己英,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出吴旋,到底是詐尸還是另有隱情损肛,我是刑警寧澤,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布荣瑟,位于F島的核電站治拿,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏笆焰。R本人自食惡果不足惜劫谅,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧同波,春花似錦鳄梅、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至冤狡,卻和暖如春孙蒙,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背悲雳。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工挎峦, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人合瓢。 一個月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓坦胶,卻偏偏與公主長得像,于是被迫代替她去往敵國和親晴楔。 傳聞我的和親對象是個殘疾皇子顿苇,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,941評論 2 355

推薦閱讀更多精彩內(nèi)容