一个不需要Log4Net的写日志的简单方法

Posted 王明辉的部落

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个不需要Log4Net的写日志的简单方法相关的知识,希望对你有一定的参考价值。

有些项目写日志时会选择大名鼎鼎的Log4Net。而在我们使用它时,总会出现一些诸如版本不匹配而造成的写日志失败的情况,还要改web.config,还要改AssemblyInfo。而且,它的失败,并不是以日志的形式展现,而是“无反应”,你无法知道是哪里出了问题,最终的效果就是“没有输出日志且不知道为什么,需要根据百度和经验判断”。索性放弃。我只是要输出文本日志而已,杀鸡不要用牛刀了。

以下是一个简单实用的日志类,无需配置。

 public class LogHelper
    {

        public static void WriteLog(string msg)
        {
            string logFileName = DateTime.Now.ToString("yyyyMMdd") + ".txt";


            //此处根据不同的项目类型用不同的方法取路径
            //string logPath = base.Context.Server.MapPath("") + @"\LOG";
            //string logPath = HttpContext.Current.Server.MapPath("") + @"\LOG";
            string logPath = AppDomain.CurrentDomain.BaseDirectory + @"\log";
            string fullPath = logPath + @"\" + logFileName;
            
            if (!Directory.Exists(logPath))
            {
                Directory.CreateDirectory(logPath);
            }
            using (StreamWriter writer = File.AppendText(fullPath))
            {
                Log(msg, writer);
                writer.Close();
            }
        }
        private static void Log(string logMessage, TextWriter writer)
        {
            writer.Write("\r\nLog Entry : ");
            writer.WriteLine("{0} {1}", DateTime.Now.ToLongTimeString(), DateTime.Now.ToLongDateString());
            writer.WriteLine("  :{0}", logMessage);
            writer.WriteLine("-------------------------------");
            writer.Flush();
        }
    }

 

以上是关于一个不需要Log4Net的写日志的简单方法的主要内容,如果未能解决你的问题,请参考以下文章

C# log4net 多线程问题

Log4net 可以在新创建的 AppDomain 中运行吗

log4net 发布到生产环境不写日志的解决方法

Log4net

有啥方法可以监控 log4net 日志文件以获取应用程序洞察力

将Log4Net 日志保存到mongodb数据库实践