在最近的一个C#项目里需要打印日志,整理出一个工具类。代码如下:
public class Logger
{
private static readonly Logger Logg = new Logger();
private string _className;
private Logger()
{
}
public static Logger GetLogger(string className)
{
Logg._className = className;
return Logg;
}
public void WriteLogs(string dirName, string type, string content)
{
string path = AppDomain.CurrentDomain.BaseDirectory;
if (!string.IsNullOrEmpty(path))
{
path = AppDomain.CurrentDomain.BaseDirectory + dirName;
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
path = path + "\\" + DateTime.Now.ToString("yyyyMMdd") + ".log";
if (!File.Exists(path))
{
FileStream fs = File.Create(path);
fs.Close();
}
if (File.Exists(path))
{
StreamWriter sw = new StreamWriter(path, true, System.Text.Encoding.Default);
sw.WriteLineAsync(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ") + (Logg._className ?? "") + " : " + type + " --> " + content);
sw.Close();
}
}
}
private void Log(string type, string content)
{
WriteLogs("logs", type, content);
}
public void Debug(string content)
{
Log("Debug", content);
}
public void Info(string content)
{
Log("Info", content);
}
public void Warn(string content)
{
Log("Warn", content);
}
public void Error(string content)
{
Log("Error", content);
}
public void Fatal(string content)
{
Log("Fatal", content);
}
}
使用方法:
Logger log = Logger.GetLogger("class_name");
log.Info("this is info");
在VS工程的/bin/Debug/logs
目录下,保存着以时间命名的log日志,如 20180328.log
,日志记录如下:
2018-03-28 17:33:43 class_name : Info --> this is info
参考:
C# 记录日志
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。