using System;
using System.Collections.Generic;
using System.Text;
namespace Shared.Phone.UserCenter
{
///
/// Log逻辑
///
public class HdlLogLogic
{
#region ■ 变量声明___________________________
///
/// Log逻辑
///
private static HdlLogLogic m_Current = null;
///
/// Log逻辑
///
public static HdlLogLogic Current
{
get
{
if (m_Current == null)
{
m_Current = new HdlLogLogic();
}
return m_Current;
}
}
///
/// 锁
///
private object objLock = new object();
#endregion
#region ■ Log出力____________________________
///
/// Log出力
///
///
/// 附加消息
public void WriteLog(Exception ex, string appendMsg = "")
{
//Log出力
string msg = appendMsg == "" ? string.Empty : appendMsg + "\r\n";
msg += ex.Message + "\r\n";
msg += ex.StackTrace;
this.WriteLog(-1, msg);
}
///
/// Log出力
///
/// 1:普通Log,-1:致命错误Log,2:特殊Log
/// Log内容
public void WriteLog(int div, string strLog)
{
lock (objLock)
{
if (div != -1 && div != 2 && UserCenterResourse.HideOption.DetailedLog == 0)
{
//暂时只记录异常信息
return;
}
//Log文件
System.IO.StreamWriter sw = null;
try
{
string fullName = string.Empty;
if (div != 2)
{
string fileName = this.GetLogFile(div);
fullName = UserCenterLogic.CombinePath(DirNameResourse.LocalMemoryDirectory, DirNameResourse.LogDirectory, fileName);
}
else
{
fullName = DirNameResourse.SendAndReceveDataLog;
}
strLog = "\r\n[" + DateTime.Now.ToString("yyyyMMdd HH:mm:ss") + "] " + strLog + "\r\n";
sw = new System.IO.StreamWriter(fullName, true, Encoding.UTF8);
sw.WriteLine(strLog);
}
catch { }
finally
{
sw?.Close();
sw = null;
}
}
}
///
/// 获取LOG文件
///
/// 1:普通Log,-1:致命错误Log
///
private string GetLogFile(int div)
{
//加密,因为这是收集数据,最好不让别人知道这是什么最好
string fileName = UserCenterResourse.UserInfo.Account + "-" + DateTime.Now.ToString("yyyyMMdd");
if (div == -1)
{
fileName += "Error";
}
else if (div == 1)
{
fileName += "Log";
}
fileName = UserCenterLogic.EncryptPassword(UserCenterResourse.FileEncryptKey, fileName);
return fileName;
}
#endregion
}
}