private static object OperationLogs_obj = new object();
/// <summary>
/// 操作日志打印
/// </summary>
public static void OperationLogs(string set, string value ,string LogAddress = "")
{
string filePath = Environment.CurrentDirectory + "\\" + "OperationLog";
string fileName = DateTime.Now.ToString("yyyyMMdd") + ".Log";
string filePathAll = filePath + "\\" + fileName;
if (!Directory.Exists(filePath))
{
Directory.CreateDirectory(filePath);
}
lock (OperationLogs_obj)
{
if (FileIsUsed(filePathAll) == false)
{
//把信息输出到文件
StreamWriter fs = new StreamWriter(filePathAll, true);
fs.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss fff") + " =====>> 调用接口:" + set);
fs.WriteLine("参数:" + value + "\n");
fs.WriteLine();
fs.Close();
}
}
}
private static object WriteLog_obj = new object();
/// <summary>
/// 异常处理
/// </summary>
public static void WriteLog(Exception ex, string LogAddress = "")
{
string filePath = Environment.CurrentDirectory + "\\" + "OperationLog";
string fileName = DateTime.Now.ToString("yyyyMMdd") + "Debug.Log";
string filePathAll = filePath + "\\" + fileName;
if (!Directory.Exists(filePath))
{
Directory.CreateDirectory(filePath);
}
lock (WriteLog_obj)
{
if (FileIsUsed(filePathAll) == false)
{
//把异常信息输出到文件
StreamWriter fs = new StreamWriter(LogAddress, true);
fs.WriteLine("当前时间:" + DateTime.Now.ToString());
fs.WriteLine("异常信息:" + ex.Message);
fs.WriteLine("异常对象:" + ex.Source);
fs.WriteLine("调用堆栈:" + ex.StackTrace.Trim());
fs.WriteLine("触发方法:" + ex.TargetSite + "\n");
fs.WriteLine();
fs.Close();
}
}
}
/// <summary>
/// 返回指示文件是否已被其它程序使用的布尔值
/// </summary>
/// <param name="fileFullName">文件的完全限定名,例如:“C:\MyFile.txt”。</param>
/// <returns>如果文件已被其它程序使用,则为 true;否则为 false。</returns>
public static Boolean FileIsUsed(String fileFullName)
{
Boolean result = false;
//判断文件是否存在,如果不存在,直接返回 false
if (!File.Exists(fileFullName))
{
result = false;
}//end: 如果文件不存在的处理逻辑
else
{//如果文件存在,则继续判断文件是否已被其它程序使用
//逻辑:尝试执行打开文件的操作,如果文件已经被其它程序使用,则打开失败,抛出异常,根据此类异常可以判断文件是否已被其它程序使用。
FileStream fileStream = null;
try
{
fileStream = File.Open(fileFullName, FileMode.Open, FileAccess.ReadWrite, System.IO.FileShare.None);
result = false;
}
catch (IOException ioEx)
{
result = true;
}
catch (Exception ex)
{
result = true;
}
finally
{
if (fileStream != null)
{
fileStream.Close();
}
}
}//end: 如果文件存在的处理逻辑
//返回指示文件是否已被其它程序使用的值
return result;
}
08-12
571
06-29
67
03-20
400