年度变更建库软件5.0版本
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

111 lines
3.2 KiB

using KGIS.Framework.Utils;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace IDGForNDBG
{
/// <summary>
/// Start()
/// Msg()
/// Log()
/// Err()
/// End()
/// </summary>
public class MsgHelper
{
private int MsgNum { get; set; }
public DateTime InitTime { get; set; }
public DateTime ItemStartTime { get; set; }
public void Start(string pMsg)
{
MsgNum++;
InitTime = DateTime.Now;
ItemStartTime = InitTime;
string _msg = string.Empty;
for (int i = 0; i < MsgNum; i++)
{
_msg += " ";
}
_msg += MsgNum + ":↓↓↓↓↓↓开始执行:" + pMsg + " - " + InitTime + " ↓↓↓↓↓↓ ";
Console.WriteLine(_msg);
Msg(pMsg, true);
//Console.WriteLine(pMsg);
}
public void Msg(string pMsg, bool pIsLog = true)
{
string _msg = string.Empty;
for (int i = 0; i < MsgNum; i++)
{
_msg += " ";
}
_msg += MsgNum + "正在执行:" + pMsg;
Console.WriteLine("Msg:正在执行 " + pMsg);
if (pIsLog)
Log(pMsg);
}
public void Log(string pMsg)
{
string _msg = string.Empty;
for (int i = 0; i < MsgNum; i++)
{
_msg += " ";
}
_msg += MsgNum + "正在执行:" + pMsg;
string time = GetTime(ItemStartTime);
LogAPI.Debug(_msg + " - 耗时:" + time);
}
public void Err(string pMsg)
{
string _msg = string.Empty;
for (int i = 0; i < MsgNum; i++)
{
_msg += " ";
}
_msg += MsgNum + "Err:" + pMsg;
string time = GetTime(ItemStartTime);
LogAPI.Debug(_msg + " - 耗时:" + time);
}
public void Throw()
{
string time = GetTime(InitTime);
string _msg = string.Empty;
for (int i = 0; i < MsgNum; i++)
{
_msg += " ";
}
_msg += MsgNum + ":------- 程序异常 ------";
Console.WriteLine(_msg);
Err(_msg);
MsgNum = 1;
End();
}
public void End()
{
string time = GetTime(InitTime);
string _msg = string.Empty;
for (int i = 0; i < MsgNum; i++)
{
_msg += " ";
}
_msg += MsgNum + ":↑↑↑↑↑↑执行完成,总耗时:" + time + "↑↑↑↑↑↑";
Console.WriteLine(_msg);
MsgNum--;
}
private string GetTime(DateTime timeA)
{
//ItemStartTime = DateTime.Now;
//timeA 表示需要计算
DateTime timeB = DateTime.Now; //获取当前时间
TimeSpan ts = timeB - timeA; //计算时间差
string time = ts.TotalSeconds.ToString(); //将时间差转换为秒
ItemStartTime = timeB;
return time;
}
}
}