using System;
using System.IO;
using System.Text;
namespace Common.Log
{
/// <summary>
///添加日志
/// V1.0
/// </summary>
public class LogHelper
{
/// <summary>
/// 获取文件路径+文件名称
/// </summary>
/// <param name="strPath"></param>
/// <returns></returns>
private static string GetFullName(string strPath)
{
string basePath = AppDomain.CurrentDomain.BaseDirectory+"\\Log";
if (!Directory.Exists(basePath))
{
Directory.CreateDirectory(basePath);
}
return Path.Combine(basePath, DateTime.Now.ToString("yyyyMMdd") + ".txt");
}
/// <summary>
/// 异常日志写入
/// </summary>
/// <param name="errorMsg"></param>
/// <param name="ex"></param>
public static void Error(string errorMsg, Exception ex = null)
{
WriteLog(ex != null ? ex.ToString() : errorMsg, Encoding.UTF8, true);
}
/// <summary>
/// 日志写入
/// </summary>
/// <param name="msg"></param>
public static void Info(string msg)
{
WriteLog(msg, Encoding.UTF8, true);
}
/// <summary>
/// 日志文件写入
/// </summary>
/// <param name="filePath"></param>
/// <param name="msg"></param>
/// <param name="code"></param>
/// <param name="bTime"></param>
public static void Info(string filePath, string msg, Encoding code, bool bTime = true)
{
WriteLog(msg, code, bTime);
}
/// <summary>
/// LOG写入
/// </summary>
/// <param name="msg"></param>
/// <param name="filePath"></param>
/// <param name="code"></param>
/// <param name="bFlag"></param>
private static void WriteLog(string msg, Encoding code, bool bFlag = true)
{
string fileName = GetFullName("");
using (FileStream fs = new FileStream(fileName, FileMode.Append, FileAccess.Write))
{
using (StreamWriter sw = new StreamWriter(fs, code))
{
try
{
sw.WriteLine(MsgFormat(msg, bFlag));
}
catch
{
// ignored
}
}
}
}
/// <summary>
/// 写入日志格式化
/// </summary>
/// <param name="Msg"></param>
/// <param name="bFlag"></param>
/// <returns></returns>
private static string MsgFormat(string Msg, bool bFlag)
{
if (bFlag)
{
StringBuilder log = new StringBuilder();
log.AppendLine("<--------------------写入时间:" + DateTime.Now + "-------------------->");
log.AppendLine(Msg);
log.AppendLine("<--------------------结束时间:" + DateTime.Now + "-------------------->");
return log.ToString();
}
return Msg;
}
}
/// <summary>
/// 日志类型
/// </summary>
internal enum LogType
{
/// <summary>
/// 错误日志
/// </summary>
Error = 1,
/// <summary>
/// Debug
/// </summary>
Debug = 2
}
}
调用: LogHelper.Info("需要写入到TXT文件中的内容");