O syslog do Debian contém informações repetidas como:
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.
Como remover o nome do servidor, nome do processo, ID do processo e espaços para que a saída seja
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.
Tentei usar no controlador ASP.NET 9 MVC
StribBuilder sb = new();
using StreamReader reader = new("/var/log/syslog");
string line;
while ((line = await reader.ReadLineAsync()) != null)
{
line = StrTran(line, "uvn-76-202 Eeva", "");
line = StrTran(line, " "), "");
sb.AppendLine(line);
}
static string StrTran(string cSearchIn, string cSearchFor, string cReplaceWith)
{
StringBuilder sb = new(cSearchIn);
return sb.Replace(cSearchFor, cReplaceWith).ToString();
}
mas isso remove apenas parte das informações desnecessárias.
1 respostas