写入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文本内容

写入Log错误日志的更多相关文章
- Log错误日志级别
		
日志记录器(Logger)的级别顺序: 分为OFF.FATAL.ERROR.WARN.INFO.DEBUG.ALL或者您定义的级别.Log4j建议只使用四个级别,优先级 从高到低分别是 ERR ...
 - SQL Server代理(5/12):理解SQL代理错误日志
		
SQL Server代理是所有实时数据库的核心.代理有很多不明显的用法,因此系统的知识,对于开发人员还是DBA都是有用的.这系列文章会通俗介绍它的很多用法. 如我们在这个系列的前几篇文章所见,SQL ...
 - 第五篇 SQL Server代理理解代理错误日志
		
本篇文章是SQL Server代理系列的第五篇,详细内容请参考原文. 正如这一系列的前几篇所述,SQL Server代理作业是由一系列的作业步骤组成,每个步骤由一个独立的类型去执行.在第四篇中我们看到 ...
 - mysql之 日志体系(错误日志、查询日志、二进制日志、事务日志、中继日志)
		
一. mysql错误日志:错误日志记录的事件:a).服务器启动关闭过程中的信息b).服务器运行过程中的错误信息c).事件调试器运行一个事件时间生的信息d).在从服务器上启动从服务器进程时产生的信息lo ...
 - MySQL-五种日志(查询日志、慢查询日志、更新日志、二进制日志、错误日志)、备份及主从复制配置
		
开启查询日志: 配置文件my.cnf: log=/usr/local/mysql/var/log.log 开启慢查询: 配置文件my.cnf: log-slow-queries=/usr/local/ ...
 - 【译】第五篇 SQL Server代理理解代理错误日志
		
本篇文章是SQL Server代理系列的第五篇,详细内容请参考原文. 正如这一系列的前几篇所述,SQL Server代理作业是由一系列的作业步骤组成,每个步骤由一个独立的类型去执行.在第四篇中我们看到 ...
 - .Net Core中间件和过滤器实现错误日志记录
		
1.中间件的概念 ASP.NET Core的处理流程是一个管道,中间件是组装到应用程序管道中用来处理请求和响应的组件. 每个中间件可以: 选择是否将请求传递给管道中的下一个组件. 可以在调用管道中的下 ...
 - [PHP] PHP在CLI环境下的错误日志
		
1.display_errors = Off;//控制php是否输出错误;在生产环境中输出会泄露敏感信息;建议记录错误而不是将它们发送到STDOUToff :不显示任何错误;stderr :向STDE ...
 - MySQL 错误日志(Error Log)
		
同大多数关系型数据库一样,日志文件是MySQL数据库的重要组成部分.MySQL有几种不同的日志文件.通常包括错误日志文件,二进制日志,通用日志,慢查询日志,等等. 这些日志能够帮助我们定位mysqld ...
 
随机推荐
- [Swift]LeetCode983. 最低票价 | Minimum Cost For Tickets
			
In a country popular for train travel, you have planned some train travelling one year in advance. ...
 - Python实现 Typora数学公式 转 有道云笔记Markdown数学公式
			
话不多说上代码,可以按照自己的需求把匿名函数改成普通函数,改不来的可以加我微信我帮你改. 块状数学公式转换 import re test_str = r''' $D={\{\vec{x_1},\vec ...
 - python3+ selenium3开发环境搭建-手把手教你安装python(详细)
			
环境搭建 基于python3和selenium3做自动化测试,俗话说:工欲善其事必先利其器:没有金刚钻就不揽那瓷器活,磨刀不误砍柴工,因此你必须会搭建基本的开发环境,掌握python基本的语法和一个I ...
 - 【纯·技术干货】更 App 化的小程序开发
			
2018 年 10 月13 日,由又拍云和知晓云联合主办的 Open Talk 丨2018 小程序开发者沙龙系列活动广州站拉开帷幕,糗事百科前端负责人宋航在沙龙上做了<更App化的小程序开发&g ...
 - @@ITENTITY
			
@@identity是表示的是最近一次向具有identity属性(即自增列)的表插入数据时对应的自增列的值,是系统定义的全局变量.一般系统定义的全局变量都是以@@开头,用户自定义变量以@开头.sele ...
 - [区块链] 密码学中Hash算法(基础)
			
在介绍Hash算法之前,先给大家来个数据结构中对hash表(散列表)的简单解释,然后我再逐步深入,讲解一下hash算法. 一.Hash原理——基础篇 1.1 概念 哈希表就是一种以 键-值(key-i ...
 - plsql中的procedure和function编程
			
procedure:存储过程 eg: create or replace procedure p --这儿是和plsql的区别 is cursor c ...
 - glusterfs+heketi为k8s提供共享存储
			
背景 近来在研究k8s,学习到pv.pvc .storageclass的时候,自己捣腾的时候使用nfs手工提供pv的方式,看到官方文档大量文档都是使用storageclass来定义一个后端存储服务, ...
 - 五一之起一台服务器玩玩-centosl系统搭建lamp
			
昨天看到有的扫描软件会扫描公网主机开放的端口,我现在就用了ssh远程登录21和22端口那不是很容易被猜想到.so,我决定要改这个端口,同时这个改端口给我打开了防火墙和ip协议和网络安全的大门. 我之前 ...
 - 消息队列中间件(二)使用 ActiveMQ
			
ActiveMQ 介绍 Active MQ 是由 Apache 出品的一款流行的功能强大的开源消息中间件,它速度快,支持跨语言的客户端,具有易于使用的企业集成模式和许多的高级功能,同时完全支持 JSM ...