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.
51 lines
1.4 KiB
51 lines
1.4 KiB
using System;
|
|
using System.Collections.Generic;
|
|
|
|
namespace Apewer.Web
|
|
{
|
|
|
|
/// <summary></summary>
|
|
public static class CronLog
|
|
{
|
|
|
|
private static object Locker = new object();
|
|
|
|
/// <summary>合并 Log 内容。</summary>
|
|
public static string Merge(params object[] content)
|
|
{
|
|
var text = TextUtility.Join(" | ", content) ?? "";
|
|
text = "Cron | " + text;
|
|
return text;
|
|
}
|
|
|
|
/// <summary>合并 Log 内容。</summary>
|
|
public static string Merge(Exception exception)
|
|
{
|
|
try { return Merge("Exception", exception.GetType().FullName, exception.Message); }
|
|
catch { return Merge("Exception", "无法记录日志的异常。"); }
|
|
}
|
|
|
|
/// <summary>调用 Log 处理程序。</summary>
|
|
public static void Invoke(Action<string> action, params object[] content)
|
|
{
|
|
RuntimeUtility.InBackground(() =>
|
|
{
|
|
var text = Merge(content);
|
|
lock (Locker)
|
|
{
|
|
try
|
|
{
|
|
if (action == null) Console(text);
|
|
else action(text);
|
|
}
|
|
catch { }
|
|
}
|
|
});
|
|
}
|
|
|
|
/// <summary>向控制台写入文本的 Log 处理程序。</summary>
|
|
public static void Console(string text) => Logger.Web.Text("Cron", text);
|
|
|
|
}
|
|
|
|
}
|
|
|