Skip to content
Snippets Groups Projects
Commit cd7f9c8c authored by Dariusz Rybicki's avatar Dariusz Rybicki
Browse files

Improve LogeMessage parsing

parent f862b214
No related branches found
No related tags found
2 merge requests!116XXMessengerClient - logging,!102Release 1.0.0
...@@ -15,7 +15,7 @@ extension LogMessage { ...@@ -15,7 +15,7 @@ extension LogMessage {
public static func parse(_ string: String) -> LogMessage { public static func parse(_ string: String) -> LogMessage {
let level: Logger.Level let level: Logger.Level
let text: String let text: String
let pattern = #"([A-Z]+) (.*)"# let pattern = #"^([A-Z]+)( \d{4}/\d{2}/\d{2})?( \d{1,2}:\d{2}:\d{2}\.\d+)? (.*)$"#
let regex = try! NSRegularExpression(pattern: pattern) let regex = try! NSRegularExpression(pattern: pattern)
let stringRange = NSRange(location: 0, length: string.utf16.count) let stringRange = NSRange(location: 0, length: string.utf16.count)
if let match = regex.firstMatch(in: string, range: stringRange) { if let match = regex.firstMatch(in: string, range: stringRange) {
...@@ -28,7 +28,7 @@ extension LogMessage { ...@@ -28,7 +28,7 @@ extension LogMessage {
} }
} }
level = .fromString(groups[1]) level = .fromString(groups[1])
text = groups[2] ?? string text = groups[4] ?? string
} else { } else {
level = .notice level = .notice
text = string text = string
......
...@@ -40,4 +40,19 @@ final class LogMessageTests: XCTestCase { ...@@ -40,4 +40,19 @@ final class LogMessageTests: XCTestCase {
LogMessage(level: .notice, text: "1234 Wrongly formatted") LogMessage(level: .notice, text: "1234 Wrongly formatted")
) )
} }
func testParsingStripsDateTime() {
XCTAssertNoDifference(
LogMessage.parse("INFO 2022/10/04 Informing..."),
LogMessage(level: .info, text: "Informing...")
)
XCTAssertNoDifference(
LogMessage.parse("INFO 23:36:55.755390 Informing..."),
LogMessage(level: .info, text: "Informing...")
)
XCTAssertNoDifference(
LogMessage.parse("INFO 2022/10/04 23:36:55.755390 Informing..."),
LogMessage(level: .info, text: "Informing...")
)
}
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment