C# Exception 写入文件

 /// <summary>
        /// 将异常打印到LOG文件
        /// </summary>
        /// <param name="ex">异常</param>
        public static void WriteLog(Exception ex)
        {
            //如果日志文件为空,则默认在Debug目录下新建YYYY-mm-dd_Log.log文件
           string LogAddress = Environment.CurrentDirectory + ‘\\‘
                + DateTime.Now.Year.ToString()
                + DateTime.Now.Month.ToString()
                + DateTime.Now.Day.ToString() + "_Log.log";
           if (!File.Exists(LogAddress))
           {
               FileStream fs = new FileStream(LogAddress, FileMode.Create, FileAccess.Write);
               //把异常信息输出到文件
               StreamWriter sw = new StreamWriter(fs, Encoding.UTF8);
               sw.WriteLine("当前时间:" + DateTime.Now.ToString());
               sw.WriteLine("异常信息:" + ex.Message);
               sw.WriteLine("异常对象:" + ex.Source);
               sw.WriteLine("调用堆栈:" + ex.StackTrace.Trim());
               sw.WriteLine("触发方法:" + ex.TargetSite);
               sw.WriteLine();

               sw.Close();
               fs.Close();
           }
           else
           {
               //把异常信息输出到文件
               FileStream fs = new FileStream(LogAddress,FileMode.Open,FileAccess.Write);
               StreamWriter sw = new StreamWriter(fs);
               sw.WriteLine("当前时间:" + DateTime.Now.ToString());
               sw.WriteLine("异常信息:" + ex.Message);
               sw.WriteLine("异常对象:" + ex.Source);
               sw.WriteLine("调用堆栈:" + ex.StackTrace.Trim());
               sw.WriteLine("触发方法:" + ex.TargetSite);
               sw.WriteLine();

               sw.Close();
               fs.Close();
           }
        }

时间: 2024-07-29 06:58:20

C# Exception 写入文件的相关文章

运用BufferedWriter把数据写入文件

public class WriteReadFiles { private static Logger log = LoggerFactory.getLogger(WriteReadFiles.class); public boolean writeFile(String content) { String filename = "E:/java_src/MVCDemo3/MVCDemo3/accounts.txt"; try { File f = new File(filename)

Java 读取、写入文件——解决乱码问题

读取文件流时,经常会遇到乱码的现象,造成乱码的原因当然不可能是一个,这里主要介绍因为文件编码格式而导致的乱码的问题.首先,明确一点,文本文件与二进制文件的概念与差异. 文本文件是基于字符编码的文件,常见的编码有ASCII编码,UNICODE编码.ANSI编码等等.二进制文件是基于值编码的文件,你可以根据具体应用,指定某个值是什么意思(这样一个过程,可以看作是自定义编码.) 因此可以看出文本文件基本上是定长编码的(也有非定长的编码如UTF-8).而二进制文件可看成是变长编码的,因为是值编码嘛,多少

java使用I/O流实现9*9乘法口诀的写入文件和从文件打印到屏幕

1.9*9乘法口诀打印到test2.txt中,代码如下 import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; public class week { publicstatic void main(String[] args) throws Exception { File t

Python 获取接口数据,解析JSON,写入文件

Python 获取接口数据,解析JSON,写入文件 用于练手的例子,从国家气象局接口上获取JSON数据,将它写入文件中,并解析JSON: 总的来说,在代码量上,python代码量要比java少很多.而且python看起来更直观一些: 以下是代码: import types import urllib2 import json duan ="--------------------------" #在控制台断行区别的 #利用urllib2获取网络数据 def registerUrl():

[转]java将字符串写入文件中

Java代码   import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileWriter; import java.io.IOException; import java.io.PrintStream; import java.io.PrintWriter; import java.io.RandomAccessFile; publi

android 往sd卡中写入文件

在调用前需要判断是否有写入权限 Environment类提供了比较丰富的方法 static File getDataDirectory() 获得android data的目录. static File getDownloadCacheDirectory() 获得下载缓存目录. static File getExternalStorageDirectory() 或者外部存储媒体目录. static File getExternalStoragePublicDirectory(String type

C#使用读写锁三句代码简单解决多线程并发写入文件时提示“文件正在由另一进程使用,因此该进程无法访问此文件”的问题

在开发程序的过程中,难免少不了写入错误日志这个关键功能.实现这个功能,可以选择使用第三方日志插件,也可以选择使用数据库,还可以自己写个简单的方法把错误信息记录到日志文件. 选择最后一种方法实现的时候,若对文件操作与线程同步不熟悉,问题就有可能出现了,因为同一个文件并不允许多个线程同时写入,否则会提示“文件正在由另一进程使用,因此该进程无法访问此文件”. 这是文件的并发写入问题,就需要用到线程同步.而微软也给进程同步提供了一些相关的类可以达到这样的目的,本文使用到的 System.Threadin

c#通过FileStream读取、写入文件

网上找过一些FileStream读取写入文件的代码,但是都有些小问题. 于是自己整理一下,以备不时之需.说明一下,以下代码我都运行过. 1.FileStream读取文件 // FileStream读取文件 public static string FileStreamReadFile(string filePath) { byte[] data = new byte[100]; char[] charData = new char[100]; FileStream file = new File

java 将内容写入文件 txt

@Test //将内容写入文件 public void xieru() throws Exception{ FileWriter fileWriter=new FileWriter("d:\\Result.txt"); int [] a=new int[]{111,222,333,444,555,666}; for (int i = 0; i < a.length; i++) { fileWriter.write(String.valueOf(a[i])+"\n&quo