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

Improve LogeMessage parsing

parent cd7f9c8c
No related branches found
No related tags found
2 merge requests!116XXMessengerClient - logging,!102Release 1.0.0
......@@ -15,8 +15,11 @@ extension LogMessage {
public static func parse(_ string: String) -> LogMessage {
let level: Logger.Level
let text: String
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 pattern = #"^([A-Z]+)( \d{4}/\d{2}/\d{2})?( \d{1,2}:\d{2}:\d{2}\.\d+)? (.*)"#
let regex = try! NSRegularExpression(
pattern: pattern,
options: .dotMatchesLineSeparators
)
let stringRange = NSRange(location: 0, length: string.utf16.count)
if let match = regex.firstMatch(in: string, range: stringRange) {
var groups: [Int: String] = [:]
......
......@@ -55,4 +55,17 @@ final class LogMessageTests: XCTestCase {
LogMessage(level: .info, text: "Informing...")
)
}
func testParsingMultilineMessage() {
XCTAssertNoDifference(
LogMessage.parse("""
ERROR 2022/10/04 23:51:15.021658 First line
Second line
"""),
LogMessage(level: .error, text: """
First line
Second line
""")
)
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment