python – Multiline Log message parsing by regex
I’m trying to parse my log files from several different project folders to show my log messages on my website. But in somehow, I couldn’t manage to parse the second or more line messages.
Do you have any idea about it?
This is an example of my log messages in the file.
[31m2000-01-01 01:02:34,123[0m [36m123456@MainProcess[0m: KingArthur: [[33;1mINFO[0m] project_name: This is a log message
[31m2000-01-01 01:02:35,123[0m [36m123456@MainProcess[0m: KingArthur: [[33;1mINFO[0m] project_name: This is a log message
[31m2000-01-01 01:02:36,123[0m [36m123456@MainProcess[0m: KingArthur: [[33;1mINFO[0m] project_name: This is a log message
[31m2000-01-01 01:02:37,123[0m [36m123456@MainProcess[0m: KingArthur: [[33;1mWARNING[0m] py.warnings: /This/is/a/path.py:302: Warning: Warning: This is a log message.
This is= a log message()
[31m2000-01-01 01:02:38,123[0m [36m123456@MainProcess[0m: KingArthur: [[33;1mWARNING[0m] py.warnings: /This/is/a/path.py:302: Warning: Warning: This is a log message.
This is= a log message()
[31m2000-01-01 01:02:39,123[0m [36m123456@MainProcess[0m: KingArthur: [[33;1mINFO[0m] project_name: This is a log message
[31m2000-01-01 01:02:40,123[0m [36m123456@MainProcess[0m: KingArthur: [[33;1mWARNING[0m] py.warnings: /This/is/a/path.py:362: SettingWithCopyWarning:
This is a log message
This is a log message
This is a log message
This is a log message
This is my regex.
# This is my regex.
log_regex = re.compile(
r'^\x1b\[31m(?P<asctime>\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2},\d{3})\x1b\[0m\s\x1b\[36m(?P<process>\d+)@(?P<processName>.+)\x1b' + # noqa
r'\[0m:\s*(?P<threadName>.+):\s\[\x1b\[33;1m(?P<levelName>\w{3,7})\x1b\[0m\]\s(?P<name>.+):\s(?P<message>[\w|\s|\n|.].*)$',
re.MULTILINE)
The expected output is as below.
2000-01-01 01:02:34,123 123456@MainProcess: KingArthur: [INFO] project_name: This is a log message
2000-01-01 01:02:35,123 123456@MainProcess: KingArthur: [INFO] project_name: This is a log message
2000-01-01 01:02:36,123 123456@MainProcess: KingArthur: [INFO] project_name: This is a log message
2000-01-01 01:02:37,123 123456@MainProcess: KingArthur: [WARNING] py.warnings: /This/is/a/path.py:302: 2000-01-01 01:02:37,123 123456@MainProcess: KingArthur: [WARNING] Warning: Warning: This is a log message.
2000-01-01 01:02:37,123 123456@MainProcess: KingArthur: [WARNING] This is= a log message()
2000-01-01 01:02:38,123 123456@MainProcess: KingArthur: [WARNING] py.warnings: /This/is/a/path.py:302: 2000-01-01 01:02:38,123 123456@MainProcess: KingArthur: [WARNING] Warning: Warning: This is a log message.
2000-01-01 01:02:38,123 123456@MainProcess: KingArthur: [WARNING] This is= a log message()
2000-01-01 01:02:39,123 123456@MainProcess: KingArthur: [INFO] project_name: This is a log message
2000-01-01 01:02:40,123 123456@MainProcess : KingArthur: [WARNING] py.warnings: /This/is/a/path.py:362: 2000-01-01 01:02:40,123 123456@MainProcess : KingArthur: [WARNING] SettingWithCopyWarning:
2000-01-01 01:02:40,123 123456@MainProcess : KingArthur: [WARNING] This is a log message
2000-01-01 01:02:40,123 123456@MainProcess : KingArthur: [WARNING] This is a log message
2000-01-01 01:02:40,123 123456@MainProcess : KingArthur: [WARNING] This is a log message
2000-01-01 01:02:40,123 123456@MainProcess : KingArthur: [WARNING] This is a log message
Read more here: Source link
