Extracting the status code and response time from a single log line using a simple pattern.
ID: 1388
using uCalcSoftware;
var uc = new uCalc();
using (var t = new uCalc.Transformer()) {
string logLine = """
2024-10-26 10:00:05 INFO 192.168.1.10 "GET /api/users HTTP/1.1" 200 15ms
""";
// Define a pattern to capture the status and time
string pattern = "{@String:request} {@Number:status} {@Number:time}ms";
// The replacement string formats the captured data for display
// {request} or {request(1)} would return the string without surrounding quotes
// {request(0)} returns the string with surrounding quotes
string replacement = "Request: {request(0)}, Status: {status}, Time: {time}ms";
t.FromTo(pattern, replacement);
// Use Filter() to extract only the transformed match
Console.WriteLine(t.Transform(logLine).Matches);
}
Request: "GET /api/users HTTP/1.1", Status: 200, Time: 15ms using uCalcSoftware; var uc = new uCalc(); using (var t = new uCalc.Transformer()) { string logLine = """ 2024-10-26 10:00:05 INFO 192.168.1.10 "GET /api/users HTTP/1.1" 200 15ms """; // Define a pattern to capture the status and time string pattern = "{@String:request} {@Number:status} {@Number:time}ms"; // The replacement string formats the captured data for display // {request} or {request(1)} would return the string without surrounding quotes // {request(0)} returns the string with surrounding quotes string replacement = "Request: {request(0)}, Status: {status}, Time: {time}ms"; t.FromTo(pattern, replacement); // Use Filter() to extract only the transformed match Console.WriteLine(t.Transform(logLine).Matches); }
#include
#include "uCalc.h"
using namespace std;
using namespace uCalcSoftware;
int main() {
uCalc uc;
{
uCalc::Transformer t;
t.Owned(); // Causes t to be released when it goes out of scope
string logLine = R"(2024-10-26 10:00:05 INFO 192.168.1.10 "GET /api/users HTTP/1.1" 200 15ms)";
// Define a pattern to capture the status and time
string pattern = "{@String:request} {@Number:status} {@Number:time}ms";
// The replacement string formats the captured data for display
// {request} or {request(1)} would return the string without surrounding quotes
// {request(0)} returns the string with surrounding quotes
string replacement = "Request: {request(0)}, Status: {status}, Time: {time}ms";
t.FromTo(pattern, replacement);
// Use Filter() to extract only the transformed match
cout << t.Transform(logLine).Matches() << endl;
}
}
Request: "GET /api/users HTTP/1.1", Status: 200, Time: 15ms #include <iostream> #include "uCalc.h" using namespace std; using namespace uCalcSoftware; int main() { uCalc uc; { uCalc::Transformer t; t.Owned(); // Causes t to be released when it goes out of scope string logLine = R"(2024-10-26 10:00:05 INFO 192.168.1.10 "GET /api/users HTTP/1.1" 200 15ms)"; // Define a pattern to capture the status and time string pattern = "{@String:request} {@Number:status} {@Number:time}ms"; // The replacement string formats the captured data for display // {request} or {request(1)} would return the string without surrounding quotes // {request(0)} returns the string with surrounding quotes string replacement = "Request: {request(0)}, Status: {status}, Time: {time}ms"; t.FromTo(pattern, replacement); // Use Filter() to extract only the transformed match cout << t.Transform(logLine).Matches() << endl; } }
Imports System
Imports uCalcSoftware
Public Module Program
Public Sub Main()
Dim uc As New uCalc()
Using t As New uCalc.Transformer()
Dim logLine As String = "2024-10-26 10:00:05 INFO 192.168.1.10 ""GET /api/users HTTP/1.1"" 200 15ms"
'// Define a pattern to capture the status and time
Dim pattern As String = "{@String:request} {@Number:status} {@Number:time}ms"
'// The replacement string formats the captured data for display
'// {request} or {request(1)} would return the string without surrounding quotes
'// {request(0)} returns the string with surrounding quotes
Dim replacement As String = "Request: {request(0)}, Status: {status}, Time: {time}ms"
t.FromTo(pattern, replacement)
'// Use Filter() to extract only the transformed match
Console.WriteLine(t.Transform(logLine).Matches)
End Using
End Sub
End Module
Request: "GET /api/users HTTP/1.1", Status: 200, Time: 15ms Imports System Imports uCalcSoftware Public Module Program Public Sub Main() Dim uc As New uCalc() Using t As New uCalc.Transformer() Dim logLine As String = "2024-10-26 10:00:05 INFO 192.168.1.10 ""GET /api/users HTTP/1.1"" 200 15ms" '// Define a pattern to capture the status and time Dim pattern As String = "{@String:request} {@Number:status} {@Number:time}ms" '// The replacement string formats the captured data for display '// {request} or {request(1)} would return the string without surrounding quotes '// {request(0)} returns the string with surrounding quotes Dim replacement As String = "Request: {request(0)}, Status: {status}, Time: {time}ms" t.FromTo(pattern, replacement) '// Use Filter() to extract only the transformed match Console.WriteLine(t.Transform(logLine).Matches) End Using End Sub End Module