添加项目文件。
This commit is contained in:
244
Epost.BLL/LogXmlBLL.cs
Normal file
244
Epost.BLL/LogXmlBLL.cs
Normal file
@ -0,0 +1,244 @@
|
||||
using Epost.Common;
|
||||
using Epost.DAL;
|
||||
using Epost.Model;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Xml;
|
||||
|
||||
namespace Epost.BLL
|
||||
{
|
||||
public class LogXmlBLL
|
||||
{
|
||||
DB db = new DB();
|
||||
List<Log4NetModel> list = new List<Log4NetModel>();
|
||||
#region 查看日志信息
|
||||
public List<Log4NetModel> Log4NetData()
|
||||
{
|
||||
list.Clear();
|
||||
Log4NetModel model = new Log4NetModel();
|
||||
model.Name = "日志文件";
|
||||
//【改变】
|
||||
string directoryPath = System.AppDomain.CurrentDomain.BaseDirectory + "\\Log\\System_log";
|
||||
//string directoryPath = db.path_log4;
|
||||
long len = GetDirectoryLength(directoryPath);
|
||||
string length = CountSize(len);
|
||||
model.Space = length;
|
||||
list.Add(model);
|
||||
return list;
|
||||
|
||||
}
|
||||
#endregion
|
||||
#region 获取文件并且转化文件大小
|
||||
public static long GetDirectoryLength(string dirPath)
|
||||
{
|
||||
long len = 0;
|
||||
//判断该路径是否存在(是否为文件夹)
|
||||
if (!Directory.Exists(dirPath))
|
||||
{
|
||||
//查询文件的大小
|
||||
len = FileSize(dirPath);
|
||||
}
|
||||
else
|
||||
{
|
||||
//定义一个DirectoryInfo对象
|
||||
DirectoryInfo di = new DirectoryInfo(dirPath);
|
||||
|
||||
//通过GetFiles方法,获取di目录中的所有文件的大小
|
||||
foreach (FileInfo fi in di.GetFiles())
|
||||
{
|
||||
len += fi.Length;
|
||||
}
|
||||
//获取di中所有的文件夹,并存到一个新的对象数组中,以进行递归
|
||||
DirectoryInfo[] dis = di.GetDirectories();
|
||||
if (dis.Length > 0)
|
||||
{
|
||||
for (int i = 0; i < dis.Length; i++)
|
||||
{
|
||||
len += GetDirectoryLength(dis[i].FullName);
|
||||
}
|
||||
}
|
||||
}
|
||||
return len;
|
||||
}
|
||||
public static long FileSize(string filePath)
|
||||
{
|
||||
//定义一个FileInfo对象,是指与filePath所指向的文件相关联,以获取其大小
|
||||
FileInfo fileInfo = new FileInfo(filePath);
|
||||
return fileInfo.Length;
|
||||
}
|
||||
|
||||
public static string CountSize(long Size)
|
||||
{
|
||||
string m_strSize = "";
|
||||
long FactSize = 0;
|
||||
FactSize = Size;
|
||||
if (FactSize < 1024.00)
|
||||
m_strSize = FactSize.ToString("F2") + " Byte";
|
||||
else if (FactSize >= 1024.00 && FactSize < 1048576)
|
||||
m_strSize = (FactSize / 1024.00).ToString("F2") + " K";
|
||||
else if (FactSize >= 1048576 && FactSize < 1073741824)
|
||||
m_strSize = (FactSize / 1024.00 / 1024.00).ToString("F2") + " M";
|
||||
else if (FactSize >= 1073741824)
|
||||
m_strSize = (FactSize / 1024.00 / 1024.00 / 1024.00).ToString("F2") + " G";
|
||||
return m_strSize;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 删除日志记录
|
||||
public bool DeleteLog4Net()
|
||||
{
|
||||
string directoryPath = System.AppDomain.CurrentDomain.BaseDirectory + "\\Log\\System_log";
|
||||
DirectoryInfo dir = new DirectoryInfo(directoryPath);
|
||||
FileSystemInfo[] fileinfo = dir.GetFileSystemInfos(); //返回目录中所有文件和子目录
|
||||
foreach (FileSystemInfo i in fileinfo)
|
||||
{
|
||||
if (i is DirectoryInfo) //判断是否文件夹
|
||||
{
|
||||
DirectoryInfo subdir = new DirectoryInfo(i.FullName);
|
||||
subdir.Delete(true); //删除子目录和文件
|
||||
}
|
||||
else
|
||||
{
|
||||
File.Delete(i.FullName); //删除指定文件
|
||||
}
|
||||
//return true;
|
||||
}
|
||||
//删除日志记录
|
||||
if (true == true)
|
||||
{
|
||||
//记录日志
|
||||
|
||||
ErrorLogBLL logBLL = new ErrorLogBLL();
|
||||
ErrorLogModel error_model = new ErrorLogModel();
|
||||
error_model.Type = "3";
|
||||
error_model.Remark = "删除日志(包括系统设置自动删除):日志目录" + directoryPath;
|
||||
logBLL.InsertErrorLog(error_model);
|
||||
}
|
||||
return true;
|
||||
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 加载日志文件的xml(定期删除)
|
||||
public bool LoadLog4XML()
|
||||
{
|
||||
try
|
||||
{
|
||||
//【改变】
|
||||
string sql_xml = System.AppDomain.CurrentDomain.BaseDirectory + "\\Log\\delog4.xml";
|
||||
//string sql_xml = @db.path_delog4;
|
||||
XmlDocument xmldoc = new XmlDocument();
|
||||
string datatime = DateTime.Now.ToString();
|
||||
XmlNode node = xmldoc.CreateXmlDeclaration("1.0", "utf-8", "");
|
||||
xmldoc.AppendChild(node);
|
||||
if (!File.Exists(sql_xml))
|
||||
{
|
||||
XmlElement root = xmldoc.CreateElement("Delete");
|
||||
xmldoc.AppendChild(root);
|
||||
//子节点
|
||||
XmlElement delete = xmldoc.CreateElement("delete");
|
||||
root.AppendChild(delete);
|
||||
//一级属性
|
||||
XmlAttribute day = xmldoc.CreateAttribute("days");
|
||||
delete.Attributes.Append(day);
|
||||
day.Value = Convert.ToString(30);
|
||||
delete.InnerText = datatime;//当前时间
|
||||
xmldoc.Save(sql_xml);
|
||||
}
|
||||
else
|
||||
{
|
||||
xmldoc.Load(sql_xml);
|
||||
XmlNode orderid2 = xmldoc.SelectSingleNode("Delete");
|
||||
var list = orderid2.ChildNodes;
|
||||
for (int i = 0; i < list.Count; i++)
|
||||
{
|
||||
if (list[i].Attributes["days"].Name == "days")
|
||||
{
|
||||
string days = list[i].Attributes["days"].Value;
|
||||
string innerday = list[i].Attributes["days"].Value;
|
||||
DateTime dtt = Convert.ToDateTime(innerday);
|
||||
dtt = dtt.AddDays(Convert.ToInt32(days));
|
||||
DateTime dtt2 = Convert.ToDateTime(datatime);
|
||||
if (dtt.CompareTo(dtt2) >= 0)
|
||||
{
|
||||
|
||||
}
|
||||
else if (dtt.CompareTo(dtt2) < 0)
|
||||
{
|
||||
//执行删除任务的操作
|
||||
DeleteLog4Net();//删除数据中的加载日志历史数据
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
LogHelper.WriteLogInfo("加载日志文件定期删除异常:" + ex.ToString());
|
||||
|
||||
}
|
||||
//对比数据
|
||||
return true;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 创建日志xml
|
||||
public bool Log4XML(int days)
|
||||
{
|
||||
//保存数据到xml格式中
|
||||
string datatime = DateTime.Now.ToString();
|
||||
//主目录
|
||||
string sql_xml = System.AppDomain.CurrentDomain.BaseDirectory + "\\Log\\delog4.xml";
|
||||
//string sql_xml = @db.path_delog4;
|
||||
//public static string sqlcon = ConfigurationManager.ConnectionStrings["path"].ToString();
|
||||
XmlDocument xmldoc = new XmlDocument();
|
||||
XmlNode node = xmldoc.CreateXmlDeclaration("1.0", "utf-8", "");
|
||||
xmldoc.AppendChild(node);
|
||||
|
||||
if (!File.Exists(sql_xml))
|
||||
{
|
||||
//根节点
|
||||
XmlElement root = xmldoc.CreateElement("Delete");
|
||||
xmldoc.AppendChild(root);
|
||||
//子节点
|
||||
XmlElement delete = xmldoc.CreateElement("delete");
|
||||
root.AppendChild(delete);
|
||||
//一级属性
|
||||
XmlAttribute day = xmldoc.CreateAttribute("days");
|
||||
delete.Attributes.Append(day);
|
||||
day.Value = Convert.ToString(days);
|
||||
delete.InnerText = datatime;//当前时间
|
||||
xmldoc.Save(sql_xml);
|
||||
}
|
||||
else
|
||||
{
|
||||
xmldoc.Load(sql_xml);
|
||||
XmlNode orderid2 = xmldoc.SelectSingleNode("Delete");
|
||||
//获取属性
|
||||
var list = orderid2.ChildNodes;
|
||||
for (int i = 0; i < list.Count; i++)
|
||||
{
|
||||
if (list[i].Attributes["days"].Name == "days")
|
||||
{
|
||||
list[i].Attributes["days"].Value = Convert.ToString(days);
|
||||
list[i].InnerText = datatime;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
xmldoc.Save(sql_xml);
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
|
Reference in New Issue
Block a user