using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace HPSocketCS.Extended
{
public class SystemFileLogs
{
public SystemFileLogs() {
}
static string logsPath =HPSocketCS.Extended.CommonLibrary.GetFullDirectoryPath(HPSocketCS.Extended.CommonLibrary.BasePath) + "Logs\\"+DateTime.Now.ToString("yyyy-MM-dd")+".log";
///
/// 分割日志文件
///
///
public static void SplitLogFile(string fileName)
{
try
{
if (System.IO.File.Exists(fileName))
{
System.IO.FileInfo fileInfo = new System.IO.FileInfo(fileName);
if ((fileInfo.Length / 1024 / 1024) >= 5)
{
string newFileFullName = System.IO.Path.GetDirectoryName(fileName) + "\\" + System.IO.Path.GetFileNameWithoutExtension(fileName) + "(" + DateTime.Now.ToString("HH:mm:ss") + ").log";
System.IO.File.Copy(fileName, newFileFullName);
string msg = "【" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "】日志文件过大,已被分割保存,可以当前日志目录找到...\r\n";
System.IO.File.WriteAllText(fileName, msg, Encoding.UTF8);
}
}
}
catch { }
}
///
/// 写日志
///
/// 日志内容
public static void WriteLogs(string txt)
{
SystemFileLogs.WriteLogs(txt, logsPath);
}
///
/// 写日志
///
/// 日志内容
public static void WriteLogs(string txt, HPSocketCS.Extended.CustomTraceListener _TraceListenerLog)
{
if (_TraceListenerLog != null)
{
_TraceListenerLog.WriteLine( "【" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "】"+txt);
}
SystemFileLogs.WriteLogs(txt, logsPath);
}
///
/// 写日志
///
/// 日志内容
/// 日志文件全路径
static void WriteLogs(string txt, string fullPath)
{
try
{
if (!System.IO.Directory.Exists(System.IO.Path.GetDirectoryName(fullPath)))
{
System.IO.Directory.CreateDirectory(System.IO.Path.GetDirectoryName(fullPath));
}
SplitLogFile(fullPath);
using (System.IO.StreamWriter sw = new System.IO.StreamWriter(fullPath, true, Encoding.UTF8))
{
sw.WriteLine("【" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "】" + txt);
sw.Flush();
sw.Close();
}
}
catch { }
}
}
}