C#日志写入
public class Logs
{
/// <summary>
/// 写日志,指定日志文件
/// </summary>
/// <param name="File"></param>
/// <param name="Msg"></param>
public static void Info(string Msg)
{
try
{
string fileName = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Log\\Info\\info-" + DateTime.Now.ToString("yyyyMMdd") + ".lg");
string path = Path.GetDirectoryName(fileName);
if (!System.IO.Directory.Exists(path))
{
System.IO.Directory.CreateDirectory(path);
System.IO.File.CreateText(fileName).Dispose();
}
else if (!System.IO.File.Exists(fileName))
{
System.IO.File.CreateText(fileName).Dispose();
}
using (TextWriter writer2 = System.IO.File.AppendText(fileName))
{
StringBuilder sb = new StringBuilder();
sb.AppendLine("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<");
sb.AppendLine("消息记录时间:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
sb.AppendLine(Msg);
sb.AppendLine(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
sb.AppendLine("");
writer2.WriteLine(sb.ToString());
}
}
catch (Exception ex)
{ }
} public static void Error(string Title, Exception exception)
{
try
{
string fileName = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Log\\Error\\err-" + DateTime.Now.ToString("yyyyMMdd") + ".lg");
string path = Path.GetDirectoryName(fileName);
if (!System.IO.Directory.Exists(path))
{
System.IO.Directory.CreateDirectory(path);
System.IO.File.CreateText(fileName).Dispose();
}
else if (!System.IO.File.Exists(fileName))
{
System.IO.File.CreateText(fileName).Dispose();
}
using (TextWriter writer2 = System.IO.File.AppendText(fileName))
{
StringBuilder sb = new StringBuilder();
sb.AppendLine("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<");
sb.AppendLine("程序发生异常:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
sb.AppendLine("异常标题:" + Title);
GetExceptionMsg(exception, sb, "");
sb.AppendLine(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
sb.AppendLine("");
writer2.WriteLine(sb.ToString());
}
}
catch (Exception ex)
{ }
} static void GetExceptionMsg(Exception ex, StringBuilder sb, string Prefix = "")
{
sb.AppendLine(Prefix + "【异常类型】:" + ex.GetType().Name);
sb.AppendLine(Prefix + "【异常信息】:" + ex.Message);
sb.AppendLine(Prefix + "【堆栈调用】:" + ex.StackTrace);
sb.AppendLine(Prefix + "【异常方法】:" + ex.TargetSite); if (ex.InnerException != null)
GetExceptionMsg(ex.InnerException, sb, Prefix + "\t");
}
}
C#日志写入的更多相关文章
- .NET Core的日志[4]:将日志写入EventLog
面向Windows的编程人员应该不会对Event Log感到陌生,以至于很多人提到日志,首先想到的就是EventLog.EventLog不仅仅记录了Windows系统自身针对各种事件的日志,我们的应用 ...
- .NET Core的日志[3]:将日志写入Debug窗口
定义在NuGet包"Microsoft.Extensions.Logging.Debug"中的DebugLogger会直接调用Debug的WriteLine方法来写入分发给它的日志 ...
- logback日志写入数据库(mysql)配置
如题 建议将日志级别设置为ERROR.这样可以避免存储过多的数据到数据中. 1 logback 配置文件(如下) <?xml version="1.0" encoding ...
- 将日志写入EventLog
将日志写入EventLog 面向Windows的编程人员应该不会对Event Log感到陌生,以至于很多人提到日志,首先想到的就是EventLog.EventLog不仅仅记录了Windows系统自身针 ...
- 将日志写入Debug窗口
定义在NuGet包“Microsoft.Extensions.Logging.Debug”中的DebugLogger会直接调用Debug的WriteLine方法来写入分发给它的日志消息.如果需要使用D ...
- 扔掉log4j、log4j2,自己动手实现一个多功能日志记录框架,包含文件,数据库日志写入,实测5W+/秒日志文件写入,2W+/秒数据库日志写入,虽然它现在还没有logback那么强大
讲到log4j,现在国外基本是没有开发者用这个框架了,原因大致有几点,1.功能太少:2.效率低下:3.线程锁bug等等等各种莫名其妙的bug一直都没解决. 其实最重要的是log4j的作者自己也放弃了l ...
- Log4j配置详解及不同的包(package)下的日志写入到不同的日志文件下
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt262 以下都是log4j.properties要写入的内容: 一:参数介绍: ...
- flask将日志写入日志文件
import logging logging.basicConfig(level=logging.DEBUG,#控制台打印的日志级别 filename='log_new.log', # 将日志写入lo ...
- Python + logging 输出到屏幕,将log日志写入文件
日志 日志是跟踪软件运行时所发生的事件的一种方法.软件开发者在代码中调用日志函数,表明发生了特定的事件.事件由描述性消息描述,该描述性消息可以可选地包含可变数据(即,对于事件的每次出现都潜在地不同的数 ...
- logging日志管理-将日志写入文件
# -*- coding: cp936 -*- # test.py #http://blog.chinaunix.net/uid-27571599-id-3492860.html #logging日志 ...
随机推荐
- full_case & parallel_case
case中的full_case与parallel_case讨论: 1)术语介绍: 整个case模块叫做:case_statement,注释部分叫做case_statement_header case ...
- C语言初学者代码中的常见错误与瑕疵(19)
见:C语言初学者代码中的常见错误与瑕疵(19)
- ASP.NET 中通过Form身份验证 来模拟Windows 域服务身份验证的方法
This step-by-step article demonstrates how an ASP.NET application can use Forms authentication to ...
- Date() 及其 如何验证用户输入的日期是合法的
1.var someDate = new Date(Date.parse("May 25, 2004")); <=> var someDate = new Dat ...
- seo之google rich-snippets丰富网页摘要结构化数据(微数据)实例代码
seo之google rich-snippets丰富网页摘要结构化数据(微数据)实例代码 网页摘要是搜索引擎搜索结果下的几行字,用户能通过网页摘要迅速了解到网页的大概内容,传统的摘要是纯文字摘要,而结 ...
- mysql的sql文件的备份与还原
1.备份 $mysqldump –u root –p*** dbname > filename.sql 2.还原 前提是数据库必须存在 $mysql –u root –p*** dbname ...
- web.xml完整配置
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java ...
- 【Pro ASP.NET MVC 3 Framework】.学习笔记.3.MVC的主要工具-单元测试
IProductRepository接口定义了一个仓库,我们通过它获得.更新Product对象.IPriceReducer接口指定了一个功能,它将要对所有的Products实施,通过一个参数,降低他们 ...
- HDU 5794:A Simple Chess(Lucas + DP)
题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=5794 题意:让一个棋子从(1,1)走到(n,m),要求像马一样走日字型并只能往右下角走.里 ...
- ACM题目————已知前序和中序求后序
#include <iostream> #include <cstring> #include <cstdio> using namespace std; ], z ...