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日志 ...
随机推荐
- android之费电检查 BetterBatteryStats
今天老大给了一个任务,是说我们的应用在后台时,还会比较费电!让我查一下 我立马头大了!无从下手! 一.赶紧百度,得到以下几个信息: ①费电的操作有:大数据量的传输;不停的在网络间切换;解析大量的文本数 ...
- 《聚焦3D地形编程》学习点
痞子龙的译本虽然称不上好,但却保留了原汁原味,看这本书时最好结合原文与痞子龙的译文.另外,如果有过地形生成的经验再看这本书时有些帮助,这本书介绍的专业的室外地形开发,很全面的介绍. 仅是个人总结,可能 ...
- OpenStack 多台计算节点时的问题
Contents [hide] 1 前言 2 bug 3 解决方法 4 网络问题 前言 添加一台计算节点后无法创建虚拟机.在调度层就错误: bug https://review.openstack.o ...
- 鸟哥的linux私房菜学习记录之程序管理和SElinux初探
process是进程的意思也就是说进程是正在运行的程序 将后台程序的错误信息等等输出到某个文档 终端关闭后会停止运行,如果想终端关闭后继续运行可以使用nohup命令,man nohup.
- Delphi XE的firemonkey获取当前文件所在路径的方法
Delphi XE的firemonkey获取当前文件所在路径的方法 在之前,我们知道有三种方法: ExtractFilePath(ParamStr(0)) ExtractFilePath(Applic ...
- 161206、 Ionic、Angularjs、Cordova搭建Android开发环境
1.jdk 环境变量配置 path:C:\Program Files\Java\jdk1.7.0_79\bin 2.Node.js 因为安装cordova时要用到node.js的npm 下载地址: h ...
- Linux程序存储结构与进程结构堆和栈的区别【转】
转自:http://www.hongkevip.com/caozuoxitong/Unix_Linux/24581.html 红客VIP(http://www.hongkevip.com):Linux ...
- settings.xml
<settings> <!--本地仓库.该值表示构建系统本地仓库的路径.其默认值为~/.m2/repository,windows:C:/Users/Administrator/.m ...
- centos7重启rsyslog服务|centos7重启syslog服务
centos7重启rsyslog服务: systemctl restart rsyslog 使用:(killall无效) killall -HUP rsyslog
- PL/SQL显示行号和高亮当前行
PL/SQL Developer 如何显示行号: PL/SQL Developer 高亮当前行: OK!