src/EasyFrameWork/Logging/FileLogger.cs

(开头部分) 3KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

/* http://www.zkea.net/ 
 * Copyright (c) ZKEASOFT. All rights reserved. 
 * http://www.zkea.net/licenses */

using Easy.Mvc.Extend;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Logging;
using System;
using System.IO;
using System.Text;

namespace Easy.Logging
{
    public class FileLogger : ILogger
    {
        static string _logFolder = "Logs";
        const string _eventTime = "Event Time: {0}";
        const string _splitLine = "----------------------------------------------------------------";
        const string _logExtention = "{0}.log";
        const string _logFileNameFormat = "yyyyMMdd";
        private readonly string _contentRootPath;
        private readonly IHttpContextAccessor _httpContextAccessor;
        private readonly string _loggerCategory;
        public FileLogger(IHttpContextAccessor httpContextAccessor, string contentRootPath, string loggerCategory)
        {
            _contentRootPath = contentRootPath;
            _loggerCategory = loggerCategory;
            _httpContextAccessor = httpContextAccessor;
        }
        #region 私有方法
        void WriteInfo(string msg)
        {
            lock (_logFolder)
            {
                string logPath = GetLogFile();
                FileStream fs = new FileStream(logPath, FileMode.Append, FileAccess.Write);
                StreamWriter writer = new StreamWriter(fs, Encoding.UTF8);
                writer.WriteLine(_splitLine);
                writer.WriteLine(_loggerCategory);
                writer.WriteLine(string.Format(_eventTime, DateTime.Now.ToString("G")));
                writer.WriteLine(msg);
                if (_httpContextAccessor.HttpContext != null && _httpContextAccessor.HttpContext.Request != null)
                {
                    writer.WriteLine("Method:{0}", _httpContextAccessor.HttpContext.Request.Method);
                    if (_httpContextAccessor.HttpContext.Request.Headers != null)
                    {
                        writer.WriteLine("Headers:");
                        foreach (var item in _httpContextAccessor.HttpContext.Request.Headers)
                        {
                            writer.WriteLine($"{item.Key}:{item.Value}");
                        }
                    }

                    writer.WriteLine(_httpContextAccessor.HttpContext.Request.GetAbsoluteUrl());
                }
                writer.WriteLine(_splitLine);
                writer.Flush();
                fs.Flush();
                writer.Dispose();
                fs.Dispose();
后面还有 40 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。