public class Loger
{
/// <summary>
/// 写入日志
/// </summary>
/// <param name="content">日志内容</param>
/// <param name="title">日志标题</param>
/// <param name="folderName">文件夹名称</param>
/// <param name="filePrefixName">文件前缀名</param>
public static void Write(string content, string title = "", string folderName = "Log", string filePrefixName = "Log")
{
try
{
lock (typeof(Loger))
{
DateTime dateTimeNow = DateTime.Now;
string logDirPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "log", folderName);
if (!Directory.Exists(logDirPath))
{
Directory.CreateDirectory(logDirPath);
} string logFilePath = string.Format("{0}/{1}-{2}.txt", logDirPath, filePrefixName, dateTimeNow.ToString("yyyy-MM-dd"));
using (StreamWriter writer = new StreamWriter(logFilePath, true, Encoding.UTF8))
{
try
{
writer.WriteLine("------------------------------------------------------------------------------------------");
writer.WriteLine(title);
writer.WriteLine("日志时间:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"));
writer.WriteLine(content);
writer.WriteLine("------------------------------------------------------------------------------------------");
}
catch (Exception ex)
{
Console.WriteLine("Loger.cs Line45" + ex.Message);
} writer.Close();
}
}
}
catch(Exception ex)
{
Console.WriteLine("Loger.cs Line54" + ex);
//throw new Exception("无法将日志写入文件,请查看安装目录是否有权限!");
}
} /// <summary>
/// 写入日志
/// </summary>
/// <param name="format">符合格式字符串</param>
/// <param name="args">一个对象数组,其中包含零个或多个要设置格式的对象</param>
public static void WriteFormat(string format, params object[] args)
{
string content = string.Format(format, args);
Write(content, "", "Log", "Log");
} /// <summary>
/// 写入日志
/// </summary>
/// <param name="ex">Exception对象</param>
/// <param name="title">日志标题</param>
/// <param name="folderName">文件夹名称</param>
/// <param name="filePrefixName">文件前缀名</param>
public static void Write(Exception ex, string title = "", string folderName = "Exception", string filePrefixName = "Exception")
{
string content = string.Format("错误信息:{1}{0}错误来源:{2}{0}堆栈信息:{0}{3}", Environment.NewLine, ex.Message, ex.Source, ex.StackTrace);
Write(content, title, folderName, filePrefixName);
}
}

最新文章

  1. ExtJS 4.2 评分组件
  2. 后缀数组(suffix array)详解
  3. ORACLE LINUX 6.3 + ORACLE 11.2.0.3 RAC + VBOX安装文档
  4. TCP协议承载的DNS报文,DNS报文首部前多出两个字节的DNS报文长度字段,是何意义?
  5. POJ 2378-Tree Cutting(树形dp)
  6. Android解析XML
  7. Android远程桌面助手(B1391)
  8. AES 加密与解密
  9. canvas学习总结四:绘制虚线
  10. 委托/lambda表达式/事件
  11. 实战框架ABP
  12. iOS8中 UILocalNotification 和 UIRemoteNotification 使用注意
  13. 一步一步开发sniffer(Winpcap+MFC)(五)莫道无人能识君,其实我懂你的心——解析数据包(转)
  14. bash编程-Shell基础
  15. Couldn’t load locSDK3
  16. UVALive 4764 dp
  17. Python 收集主机信息
  18. webqq协议分析之~~~~验证是否需要验证码
  19. 本地vagrant配置虚拟域名的坑
  20. Python进程监控-MyProcMonitor

热门文章

  1. thinkphp 输入过滤
  2. NX二次开发-UFUN计时函数UF_end_timer
  3. Shader实现新手指引挖空圆形和矩形
  4. spring注解方式配置以及spring4的泛型注入 (4)
  5. nlp总结
  6. RCC, Reset and Clock Control
  7. Spring Cloud Eureka 注册安全一定要做到位!
  8. C++数据类型之字符串类型&amp;布尔类型&amp;数据的输入
  9. Apsara Clouder基础技能认证:阿里巴巴编码规范 考试备考题库
  10. SQLserver执行命令