using System;
using System.Diagnostics;
using System.IO;
namespace Common
{
public class Log
{
private const string output = @"d:/test.txt"; //输出目录
private const string logFile = @"d:/file/log.txt"; //日志目录
public static string write(string msg)
{
StreamWriter writer = new StreamWriter(output, true);
writer.Write(DateTime.Now.ToString("HH:mm:ss "));
writer.WriteLine(msg);
writer.Close();
return msg;
}
public static string record(string msg, string filePath = logFile)
{
StreamWriter writer = new StreamWriter(filePath, true);
writer.Write(DateTime.Now.ToString("yy/MM/dd HH:mm:ss") + " ");
writer.WriteLine(msg);
writer.Close();
return msg;
}
public static void test()
{
writeTrace("dfd", 2);
}
// 摘要:
// 打印调用类堆栈
//detail根据详细级别分为2个等级
public static int writeTrace(string msg, int detail = 1)
{
StreamWriter writer = new StreamWriter(output, true);
StackFrame[] frames = new StackTrace(true).GetFrames();
int framCount = frames.Length - 1;
string time = DateTime.Now.ToString("yy/MM/dd HH:mm:ss");
writer.WriteLine(time + ", invokes:" + framCount + ", message: " + msg);
for (int i = 0; i < framCount; i++)
{
StackFrame frame = frames[framCount - i]; //以调用顺序打印
for (int j = 0; j < i; j++)
{
writer.Write(" ");
}
switch (detail)
{
case 1: //类,方法
writer.Write("-> " + frame.GetMethod().DeclaringType.Name + "." + frame.GetMethod().Name + "()");
break;
case 2: //文件,详细的类,详细方法
string fileName = frame.GetFileName().Substring(frame.GetFileName().LastIndexOf(@"\"));
writer.Write(fileName + ": " + frame.GetFileLineNumber());
writer.WriteLine(" " + frame.GetType() + ": " + frame.GetMethod());
break;
case 3: //详细文件,详细的类,详细方法
writer.Write(frame.GetFileName() + ": " + frame.GetFileLineNumber());
writer.WriteLine(" " + frame.GetType() + ": " + frame.GetMethod());
break;
}
}
writer.WriteLine();
writer.Close();
return framCount;
}
}
class LogResult
{ //返回结果集, 搁置
public string msg { get; set; }
public int framCount { get; set; }
public string methods { get; set; }
public string types { get; set; }
}
}
using System.Diagnostics;
using System.IO;
namespace Common
{
public class Log
{
private const string output = @"d:/test.txt"; //输出目录
private const string logFile = @"d:/file/log.txt"; //日志目录
public static string write(string msg)
{
StreamWriter writer = new StreamWriter(output, true);
writer.Write(DateTime.Now.ToString("HH:mm:ss "));
writer.WriteLine(msg);
writer.Close();
return msg;
}
public static string record(string msg, string filePath = logFile)
{
StreamWriter writer = new StreamWriter(filePath, true);
writer.Write(DateTime.Now.ToString("yy/MM/dd HH:mm:ss") + " ");
writer.WriteLine(msg);
writer.Close();
return msg;
}
public static void test()
{
writeTrace("dfd", 2);
}
// 摘要:
// 打印调用类堆栈
//detail根据详细级别分为2个等级
public static int writeTrace(string msg, int detail = 1)
{
StreamWriter writer = new StreamWriter(output, true);
StackFrame[] frames = new StackTrace(true).GetFrames();
int framCount = frames.Length - 1;
string time = DateTime.Now.ToString("yy/MM/dd HH:mm:ss");
writer.WriteLine(time + ", invokes:" + framCount + ", message: " + msg);
for (int i = 0; i < framCount; i++)
{
StackFrame frame = frames[framCount - i]; //以调用顺序打印
for (int j = 0; j < i; j++)
{
writer.Write(" ");
}
switch (detail)
{
case 1: //类,方法
writer.Write("-> " + frame.GetMethod().DeclaringType.Name + "." + frame.GetMethod().Name + "()");
break;
case 2: //文件,详细的类,详细方法
string fileName = frame.GetFileName().Substring(frame.GetFileName().LastIndexOf(@"\"));
writer.Write(fileName + ": " + frame.GetFileLineNumber());
writer.WriteLine(" " + frame.GetType() + ": " + frame.GetMethod());
break;
case 3: //详细文件,详细的类,详细方法
writer.Write(frame.GetFileName() + ": " + frame.GetFileLineNumber());
writer.WriteLine(" " + frame.GetType() + ": " + frame.GetMethod());
break;
}
}
writer.WriteLine();
writer.Close();
return framCount;
}
}
class LogResult
{ //返回结果集, 搁置
public string msg { get; set; }
public int framCount { get; set; }
public string methods { get; set; }
public string types { get; set; }
}
}