1、LogHelper 日志记录帮助类

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.IO;
  6.  
  7. namespace Weixin.Utils
  8. {
  9. public enum LogType
  10. {
  11. Overall,
  12. }
  13.  
  14. public class LogHelper
  15. {
  16. public static string LogPath
  17. {
  18. get
  19. {
  20. return AppDomain.CurrentDomain.BaseDirectory+@"\log";
  21. }
  22. }
  23.  
  24. public enum LogLevel
  25. {
  26. Info,
  27. Error
  28. }
  29.  
  30. public static void Info(string message, LogType logType = LogType.Overall)
  31. {
  32. if (string.IsNullOrEmpty(message))
  33. return;
  34. var path = string.Format(@"\{0}\", logType.ToString());
  35. WriteLog(path, "", message);
  36. }
  37.  
  38. public static void Error(string message, LogType logType = LogType.Overall)
  39. {
  40. if (string.IsNullOrEmpty(message))
  41. return;
  42. var path = string.Format(@"\{0}\", logType.ToString());
  43. WriteLog(path, "Error ", message);
  44. }
  45.  
  46. public static void Error(Exception e, LogType logType = LogType.Overall)
  47. {
  48. if (e == null)
  49. return;
  50. var path = string.Format(@"\{0}\", logType.ToString());
  51. WriteLog(path, "Error ", e.Message);
  52. }
  53.  
  54. private static void WriteLog(string path, string prefix, string message)
  55. {
  56. path = LogPath + path;
  57. var fileName = string.Format("{0}{1}.log", prefix, DateTime.Now.ToString("yyyyMMdd"));
  58.  
  59. if (!Directory.Exists(path))
  60. Directory.CreateDirectory(path);
  61.  
  62. using (FileStream fs = new FileStream(path + fileName, FileMode.Append, FileAccess.Write,
  63. FileShare.Write, 1024, FileOptions.Asynchronous))
  64. {
  65. byte[] buffer = System.Text.Encoding.UTF8.GetBytes(DateTime.Now.ToString("HH:mm:ss") + " " + message + "\r\n");
  66. IAsyncResult writeResult = fs.BeginWrite(buffer, 0, buffer.Length,
  67. (asyncResult) =>
  68. {
  69. var fStream = (FileStream)asyncResult.AsyncState;
  70. fStream.EndWrite(asyncResult);
  71. },
  72.  
  73. fs);
  74. fs.Close();
  75. }
  76. }
  77. }
  78. }

2、帮助类使用

  1. var msg = "日志文本信息";
  2. LogHelper.Info(msg);

LogHelper 日志记录帮助类的更多相关文章

  1. C# 日志记录工具类--LogHelper.cs测试

    C# 日志记录工具类:(适用于不想使用log4j等第三方的Log工具的时候,希望自己写个简单类实现)LogHelper.cs内容如下: using System; using System.Diagn ...

  2. 封装一个基于NLog+NLog.Mongo的日志记录工具类LogUtil

    封装一个基于NLog+NLog.Mongo的日志记录工具类LogUtil,代码比较简单,主要是把MongoTarget的配置.FileTarget的配置集成到类中,同时利用缓存依赖来判断是否需要重新创 ...

  3. 封装一个基于NLog+NLog.Mongo的日志记录工具类LogUtil,nloglogutil

    封装一个基于NLog+NLog.Mongo的日志记录工具类LogUtil,代码比较简单,主要是把MongoTarget的配置.FileTarget的配置集成到类中,同时利用缓存依赖来判断是否需要重新创 ...

  4. Go/Python/Erlang编程语言对比分析及示例 基于RabbitMQ.Client组件实现RabbitMQ可复用的 ConnectionPool(连接池) 封装一个基于NLog+NLog.Mongo的日志记录工具类LogUtil 分享基于MemoryCache(内存缓存)的缓存工具类,C# B/S 、C/S项目均可以使用!

    Go/Python/Erlang编程语言对比分析及示例   本文主要是介绍Go,从语言对比分析的角度切入.之所以选择与Python.Erlang对比,是因为做为高级语言,它们语言特性上有较大的相似性, ...

  5. php之框架增加日志记录功能类

    <?php /* 思路:给定文件,写入读取(fopen ,fwrite……) 如果大于1M 则重写备份 传给一个内容, 判断大小,如果大于1M,备份 小于则写入 */ class Log{ // ...

  6. 【个人使用.Net类库】(2)Log日志记录类

    开发接口程序时,要保证程序稳定运行就要时刻监控接口程序发送和接收的数据,这就需要一个日志记录的类将需要的信息记录在日志文件中,便于自己维护接口程序.(Web系统也是如此,只是对应的日志实现比这个要复杂 ...

  7. 运用Spring Aop,一个注解实现日志记录

    运用Spring Aop,一个注解实现日志记录 1. 介绍 我们都知道Spring框架的两大特性分别是 IOC (控制反转)和 AOP (面向切面),这个是每一个Spring学习视频里面一开始都会提到 ...

  8. 基于java.util.logging实现轻量级日志记录库(增加根据当前类class初始化,修复线程池模型(javaEE)下的堆栈轨迹顺序与当前调用方法不一致问题)

    前言: 本章介绍自己写的基于java.util.logging的轻量级日志记录库(baseLog). 该版本的日志记录库犹如其名,baseLog,是个实现日志记录基本功能的小库,适合小型项目使用,方便 ...

  9. Hibernate4 拦截器(Interceptor) 实现实体类增删改的日志记录

    转自:https://blog.csdn.net/he90227/article/details/44783099 开发应用程序的过程中,经常会对一些比较重要的数据修改都需要写日志.在实际工作的工程中 ...

随机推荐

  1. python中的字符串格式化

    Python中常见的字符串格式化方式包括两种:字符串插入(str%),format函数(str.format()) 1.字符串插入 字符串插入是设置字符串格式的简单方法,与C语言.Fortran语言差 ...

  2. 转载-Oracle ORACLE的sign函数和DECODE函数

    原文地址:http://www.cnblogs.com/BetterWF/archive/2012/06/12/2545829.html 转载以备用 比较大小函数 sign 函数语法:sign(n) ...

  3. MySQL学习笔记(二)

    连接与断开服务器 应该以下面的方式连接MySQL服务器,而不是将密码以明文方式输入连接. C:\> mysql -h host -u user -pEnter password: ******* ...

  4. HEOI2016 题解

    HEOI2016 题解 Q:为什么要在sdoi前做去年的heoi题 A:我省选药丸 http://cogs.pro/cogs/problem/index.php?key=heoi2016 D1T1 树 ...

  5. CF 375D. Tree and Queries加强版!!!【dfs序分块 大小分类讨论】

    传送门 题意: 一棵树,询问一个子树内出现次数$\ge k$的颜色有几种,Candy?这个沙茶自带强制在线 吐槽: 本来一道可以离散的莫队我非要强制在线用分块做:上午就开始写了然后发现思路错了...: ...

  6. CodeChef Little Elephant and Mouses [DP]

    https://www.codechef.com/problems/LEMOUSE 题意: 有一个n *m的网格.有一头大象,初始时在(1,1),要移动到(n,m),每次只能向右或者向下走.有些格子中 ...

  7. BZOJ 1898: [Zjoi2005]Swamp 沼泽鳄鱼 [矩阵乘法]

    1898: [Zjoi2005]Swamp 沼泽鳄鱼 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 1082  Solved: 602[Submit][S ...

  8. ------ 新春第一炮:阶乘算法性能分析与 double fault 蓝屏故障排查 Part I ------

    -------------------------------------------------------------------------- 春节期间闲来无事想研究下算法,上机测试代码却遇到了 ...

  9. win7无法启用网络发现

    1. Windows+R 2. 指令services.msc 3.找到以下服务,设为自动并开启服务 Function Discovery Resource Publication SSDP Disco ...

  10. Array 数组的排序 sort

    JavaScript实现多维数组.对象数组排序,其实用的就是原生的sort()方法,用于对数组的元素进行排序.sort() 方法用于对数组的元素进行排序.语法如下:arrayObject.sort(s ...