• 写入Log错误日志


    第一步创建ApplicationLog类

    代码:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.IO;
    using System.Web;

    namespace WeChat.Common
    {
    /// <summary>
    /// 通过活动及页面级别
    /// </summary>
    public class ApplicationLog
    {
    /// <summary>
    /// 写入错误日志
    /// </summary>
    /// <param name="message">日志内容</param>
    public static void Write(string message)
    {
    Write(message, LogType.txt);
    }

    /// <summary>
    /// 写入错误日志
    /// </summary>
    /// <param name="message">日志内容</param>
    /// <param name="method">方法名称</param>
    public static void Write(string message, string method)
    {
    Write(message + ",Method:" + method, LogType.txt);
    }

    /// <summary>
    /// 写入错误日志
    /// </summary>
    /// <param name="description">错误异常的简单描述</param>
    /// <param name="exceptionInfo">exception抛出的异常信息</param>
    /// <param name="pageName">报错页面的名称</param>
    /// <param name="methodName">报错方法的名称</param>
    public static void Write(string description, string exceptionInfo, string pageName, string methodName)
    {
    Write(string.Format("{0}:{1},Page={2},Method={3}", description, exceptionInfo, pageName, methodName));
    }

    /// <summary>
    /// 写入信息记录日志
    /// </summary>
    /// <param name="message">日志内容</param>
    public static void WriteLog(string message)
    {
    Write(message, LogType.log);
    }

    /// <summary>
    /// 写入信息记录日志
    /// </summary>
    /// <param name="message">日志内容</param>
    /// <param name="method">方法名称</param>
    public static void WriteLog(string message, string method)
    {
    Write(message + ",Method:" + method, LogType.log);
    }

    // 写入日志
    private static void Write(string message, LogType fileType)
    {
    string folder = "";
    try
    {
    folder = HttpContext.Current.Server.MapPath("~/Logs/");
    }
    catch (Exception ex)
    {
    folder = Path.Combine(HttpRuntime.AppDomainAppPath,"Logs\");
    }
    string file = string.Format("{0}{1}.{2}", folder, DateTime.Now.ToString("yyyyMMdd"), fileType);
    if (HttpContext.Current != null)
    {
    message = string.Format("[{0}][{1}][{2}]:{3}", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), HttpContext.Current.Request.Url.LocalPath, HttpContext.Current.Request.UserHostAddress, message);
    }
    else
    {
    message = string.Format("[{0}]:{1}", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), message);
    }
    try
    {
    if (!Directory.Exists(folder))
    {
    Directory.CreateDirectory(folder);
    }

    StreamWriter sw;

    if (!File.Exists(file))
    {
    sw = File.CreateText(file);
    sw.Close();
    }

    sw = new StreamWriter(file, true, Encoding.Default);
    lock (sw)
    {
    sw.WriteLine(message);
    sw.Close();
    }
    }
    catch (Exception ex)
    {
    if (HttpContext.Current != null)
    {
    HttpContext.Current.Response.Write(string.Format("log write error, ex={0}。", ex.Message));
    HttpContext.Current.Response.End();
    }
    }
    }

    //日志类型
    private enum LogType
    {
    txt = 0,
    log = 1
    }

    }

    }

     第三步:

    调用方法:

     第四步:

    最终创建log文件的log.txt文本内容

  • 相关阅读:
    Android Push Notification实现信息推送使用
    java动态编译
    Directx11教程(56) 建立一个skydome
    Directx11教程(51) 简单的billboard
    Directx11教程(52) 实例(instancing)的简单应用
    Directx11教程(50) 输出depth/stencil buffer的内容
    Directx11教程(54) 简单的基于GS的billboard实现
    Directx11教程(57) 环境映射
    Directx11教程(59) tessellation学习(1)
    Directx11教程(20) 一个简单的水面
  • 原文地址:https://www.cnblogs.com/zoujinhua/p/10494017.html
Copyright © 2020-2023  润新知