Skip to content

Commit e126f1a

Browse files
feat: add log_level attribute (#382)
This PR adds a new event field to logs (log_level). Example log before this change: ``` 2024-07-15 10:01:22,969 ERROR pid=49789 tid=MainThread file=helper_one.py:stream_events:19 | Test log ``` Example log after this change: ``` 2024-07-15 10:01:22,969 log_level=ERROR pid=49789 tid=MainThread file=helper_one.py:stream_events:19 | Test log ```
1 parent ce20b6c commit e126f1a

File tree

2 files changed

+34
-1
lines changed

2 files changed

+34
-1
lines changed

solnlib/log.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ class Logs(metaclass=Singleton):
7979
_default_directory = None
8080
_default_namespace = None
8181
_default_log_format = (
82-
"%(asctime)s %(levelname)s pid=%(process)d tid=%(threadName)s "
82+
"%(asctime)s log_level=%(levelname)s pid=%(process)d tid=%(threadName)s "
8383
"file=%(filename)s:%(funcName)s:%(lineno)d | %(message)s"
8484
)
8585
_default_log_level = logging.INFO

tests/unit/test_log.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,13 @@
1818
import json
1919
import multiprocessing
2020
import os
21+
import re
2122
import shutil
2223
import threading
2324
import traceback
2425
import time
26+
from textwrap import dedent
27+
2528
import pytest
2629
from unittest import mock
2730

@@ -300,3 +303,33 @@ class AddonComplexError(Exception):
300303
mock_logger.log.assert_called_with(
301304
logging.ERROR, f"exc_l={result} \n{traceback.format_exc()}\n"
302305
)
306+
307+
308+
def test_log_format(monkeypatch, tmp_path):
309+
log_file = tmp_path / "logging_levels.log"
310+
311+
monkeypatch.setattr(log.Logs, "_get_log_file", lambda _, name: str(log_file))
312+
313+
logger = log.Logs().get_logger("logging_levels")
314+
315+
logger.warning("log 2")
316+
logger.error("log 3")
317+
318+
log_content = transform_log(log_file.read_text())
319+
320+
assert (
321+
log_content
322+
== dedent(
323+
"""
324+
2024-03-23 10:15:20,555 log_level=WARNING pid=1234 tid=MainThread file=test_file.py:test_func:123 | log 2
325+
2024-03-23 10:15:20,555 log_level=ERROR pid=1234 tid=MainThread file=test_file.py:test_func:123 | log 3
326+
""",
327+
).lstrip()
328+
)
329+
330+
331+
def transform_log(log: str) -> str:
332+
log = re.sub(r"pid=\d+", "pid=1234", log)
333+
log = re.sub(r"file=[^ ]+", "file=test_file.py:test_func:123", log)
334+
log = re.sub(r"\d{4}-\d\d-\d\d \d\d[^ ]+", "2024-03-23 10:15:20,555", log)
335+
return log

0 commit comments

Comments
 (0)