zoukankan      html  css  js  c++  java
  • c# 错误日志生成类

    public class LogHelper
    {
    #region 错误日志记录
    public static string webIniErrorLogName = HttpRuntime.AppDomainAppPath + "WebLog\E_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".txt";//Web错误日志名称
    /// <summary>
    /// 创建日志目录
    /// </summary>
    private static void CreateDirectory()
    {
    if (!Directory.Exists(HttpRuntime.AppDomainAppPath + "WebLog"))
    {
    Directory.CreateDirectory(HttpRuntime.AppDomainAppPath + "WebLog");
    }
    }
    /// <summary>
    /// 创建错误日志文件
    /// </summary>
    private static void CreateMarsWebErrorLogFile()
    {
    CreateDirectory();
    if (!File.Exists(webIniErrorLogName))
    {
    string filename = webIniErrorLogName;//文件名称
    using (FileStream myFs = new FileStream(filename, FileMode.Create))
    {
    StreamWriter mySw = new StreamWriter(myFs);
    mySw.Write("");
    mySw.Dispose();
    myFs.Close();
    myFs.Dispose();
    }
    }
    }
    /// <summary>
    /// 写错误日志调用
    /// </summary>
    /// <param name="errorMsg"></param>
    public static void WriteMessageErrorLog(string errorMsg)
    {
    System.Threading.ParameterizedThreadStart logdele = new ParameterizedThreadStart(WriteMessageELog);
    AsyncCallback asyncCallback = new AsyncCallback(Async_ApplyStyleAndData);
    logdele.BeginInvoke(errorMsg, asyncCallback, null);
    }
    /// <summary>
    /// 写错误日志方法
    /// </summary>
    /// <param name="errorMsg"></param>
    private static void WriteMessageELog(object errorMsg)
    {
    CreateMarsWebErrorLogFile();
    int i = 0;
    do
    {
    try
    {
    string logFilePath = webIniErrorLogName;
    FileStream fs = new FileStream(logFilePath, FileMode.Append, FileAccess.Write, FileShare.ReadWrite);
    StreamWriter sw = new StreamWriter(fs);
    string context = " " + DateTime.Now + " " + errorMsg;
    byte[] contextByte = Encoding.UTF8.GetBytes(context);
    fs.Write(contextByte, 0, contextByte.Length);
    fs.Flush();
    fs.Close();
    fs.Dispose();
    break;
    }
    catch (Exception)
    {
    Thread.Sleep(500);
    }
    } while (i < 3);
    }
    /// <summary>
    /// 回调
    /// </summary>
    /// <param name="ar"></param>
    public static void Async_ApplyStyleAndData(IAsyncResult ar) { }
    /// <summary>
    /// 监测时间
    /// </summary>
    private void CheckTime()
    {
    if (DateTime.Now.Hour.ToString("00") == "00")
    {
    webIniErrorLogName = HttpRuntime.AppDomainAppPath + "WebLog\E_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".txt";//Web错误日志名称
    }
    }
    /// <summary>
    /// 开始检测
    /// </summary>
    public void DoCheckTime()
    {
    while (true)
    {
    CheckTime();
    Thread.Sleep(180000);//半小时执行一次
    }
    }
    #endregion
    }

  • 相关阅读:
    css 选择器
    IIS6、7添加反向代理的步骤
    使用脚本监控windows服务的方法
    ueditor编辑器插件 chrome中图片上传框延时问题
    Mysql隐式类型转换原则
    ASP.NET MVC 分页问题
    .NET程序集引用COM组件MSScriptControl所遇到的问题
    Makefile学习笔记
    操作系统的主要功能
    Linux基本命令之用户系统相关命令
  • 原文地址:https://www.cnblogs.com/2260827114com/p/6479887.html
Copyright © 2011-2022 走看看