Feedback

C# - Apache Log File Parsen (Regex)

Veröffentlicht von am 05.06.2015
(0 Bewertungen)
Mit dem Regex kann man eine Zeile aus einer Apache Log File einfach zerlegen.

Dieses Snippet ist eine C#-Portierung.
Das original Java Snippet:
http://www.java2s.com/Code/Java/Development-Class/ParseanApachelogfilewithRegularExpressions.htm

Das Logformat von Apache ist variabel.
Somit muss dieses Regex ggf. angepasst werden!
GFU-Schulungen  [Anzeige]

Angular mit ASP.NET Core für .NET-Entwickler

.NET ist Ihnen vertraut, als Entwickler verfügen Sie über einschlägige Kenntnisse. In diesem Kurs lernen Sie nun, Angular in .NET-Umgebungen einzusetzen. Sie verstehen das Konzept von Angular und integrieren das clientseitige JS-Framework sicher in.NET-Anwendungen.

XML und .NET Überblick

Um auf dem neuesten Wissensstand zu sein, sollten Sie unser aktuelles ASP .NET Komplett Seminar belegen.
Nach dem Seminar kennen Sie die wichtigsten Strömungen in der Software-Technologie

/** The sample log entry to be parsed. */
string logEntryLine = "123.45.67.89 - - [27/Oct/2000:09:27:09 -0400] \"GET /java/javaResources.html HTTP/1.0\" 200 10450 \"-\" \"Mozilla/4.6 [en] (X11; U; OpenBSD 2.8 i386; Nav)\"";

string logEntryPattern = "^([\\d.]+) (\\S+) (\\S+) \\[([\\w:/]+\\s[+\\-]\\d{4})\\] \"(.+?)\" (\\d{3}) (\\d+) \"([^\"]+)\" \"([^\"]+)\"";

Match regexMatch = Regex.Match(logEntryLine, logEntryPattern);

Console.WriteLine("IP Address: " + regexMatch.Groups[1].Value);
Console.WriteLine("Date&Time: " + regexMatch.Groups[4].Value);
Console.WriteLine("Request: " + regexMatch.Groups[5].Value);
Console.WriteLine("Response: " + regexMatch.Groups[6].Value);
Console.WriteLine("Bytes Sent: " + regexMatch.Groups[7].Value);
if (!regexMatch.Groups[8].Value.Equals("-"))
	Console.WriteLine("Referer: " + regexMatch.Groups[8].Value);
Console.WriteLine("Browser: " + regexMatch.Groups[9].Value);
Abgelegt unter apache, log, regex.

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!