You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Debian Syslog中移除服务器名、进程名及进程ID

清理Debian Syslog冗余信息的ASP.NET解决方案

原始Syslog内容

Dec 25 09:43:28 uvn-76-202 Eeva[7192]:          at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
Dec 25 09:43:28 uvn-76-202 Eeva[7192]:          at Program.<>c.<<Main>b__3_6>d.MoveNext() in C:\raamat\eevaweb\Store\Program.cs:line 979
Dec 25 09:43:28 uvn-76-202 Eeva[7192]:       
Dec 25 09:45:01 uvn-76-202 CRON[18528]: (root) CMD (command -v debian-sa1 > /dev/null && debian-sa1 1 1)
Dec 25 09:54:14 uvn-76-202 systemd[1]: Created slice User Slice of UID 0.

期望输出

Dec 25 09:43:28 at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
Dec 25 09:43:28 at Program.<>c.<<Main>b__3_6>d.MoveNext() in C:\raamat\eevaweb\Store\Program.cs:line 979
Dec 25 09:45:01 (root) CMD (command -v debian-sa1 > /dev/null && debian-sa1 1 1)
Dec 25 09:54:14 Created slice User Slice of UID 0.

完整解决方案代码

在ASP.NET 9 MVC控制器中,可通过正则表达式批量处理日志内容,移除服务器名、进程名、PID及多余空格,同时过滤空行:

using System.Text.RegularExpressions;

public class SyslogCleanerController : Controller
{
    public string CleanSyslogContent(string rawSyslog)
    {
        // 正则模式:捕获日期时间,匹配并移除后续的冗余部分
        string regexPattern = @"^(\w{3} \d{1,2} \d{2}:\d{2}:\d{2}) \S+ \S+\[\d+\]:\s*";
        var regex = new Regex(regexPattern, RegexOptions.Multiline);

        // 替换冗余内容,仅保留日期时间+日志正文
        string cleanedLog = regex.Replace(rawSyslog, "$1 ");

        // 过滤处理后为空的行
        var validLines = cleanedLog.Split(Environment.NewLine, StringSplitOptions.RemoveEmptyEntries);
        
        return string.Join(Environment.NewLine, validLines);
    }
}

正则表达式说明

  • ^(\w{3} \d{1,2} \d{2}:\d{2}:\d{2}):捕获日志开头的日期时间格式(支持1位日期,如Jan 5)
  • \S+:匹配服务器名称(任意非空白字符组合)
  • \S+\[\d+\]:匹配进程名+PID格式(如Eeva[7192])
  • :\s*:匹配冒号及后续任意数量的空白字符
  • RegexOptions.Multiline:确保^匹配每一行的开头,而非整个字符串的开头

调用此方法时,传入原始Syslog字符串即可得到符合要求的清理后内容。

内容的提问来源于stack exchange,提问作者Andrus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 08:37:37