Skip to content

Commit b5b958a

Browse files
author
Maxwell Dylla
committed
formatted logger for applications
1 parent e444f06 commit b5b958a

File tree

5 files changed

+26
-12
lines changed

5 files changed

+26
-12
lines changed

Makefile

+2-2
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,11 @@ test-unit:
2626

2727
.PHONY: test-integration
2828
test-integration:
29-
pytest tests/integration/ -s
29+
pytest tests/integration/ -s --log-cli-level=INFO
3030

3131
.PHONY: test-e2e
3232
test-e2e:
33-
pytest tests/e2e/ -s
33+
pytest tests/e2e/ -s --log-cli-level=INFO
3434

3535
.PHONY: docker-image
3636
docker-image:

src/pulse_telemetry/apps/table_maintenance.py

+2-5
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,13 @@
11
import concurrent.futures
22
import datetime
33
import functools
4-
import logging
5-
import sys
64

75
from pyspark.sql import SparkSession
86

7+
import pulse_telemetry.logging
98
from pulse_telemetry.sparklib import iceberg
109

11-
logger = logging.getLogger("pulse-telemetry")
12-
logger.addHandler(logging.StreamHandler(sys.stdout))
13-
logger.setLevel(logging.INFO)
10+
logger = pulse_telemetry.logging.get_logger()
1411

1512

1613
class NoTablesFoundError(Exception):

src/pulse_telemetry/apps/telemetry_statistics.py

+2-5
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,11 @@
11
import datetime
2-
import logging
3-
import sys
42

53
from pyspark.sql import SparkSession
64

5+
import pulse_telemetry.logging
76
from pulse_telemetry.sparklib import iceberg, processing_incremental, statistics_cycle, statistics_step, telemetry
87

9-
logger = logging.getLogger("pulse-telemetry")
10-
logger.addHandler(logging.StreamHandler(sys.stdout))
11-
logger.setLevel(logging.INFO)
8+
logger = pulse_telemetry.logging.get_logger()
129

1310

1411
def create_tables_if_not_exist(spark: SparkSession, catalog_name: str, database_name: str):

src/pulse_telemetry/logging.py

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import logging
2+
import sys
3+
4+
logging.basicConfig(
5+
level=logging.INFO,
6+
format="%(asctime)s - %(name)s - %(levelname)s - %(message)s",
7+
handlers=[logging.StreamHandler(sys.stdout)],
8+
)
9+
10+
11+
def get_logger():
12+
return logging.getLogger("pulse-telemetry")

tests/unit/test_logging.py

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
from pulse_telemetry.logging import get_logger
2+
3+
4+
def test_logger_inherits_root_configuration():
5+
logger = get_logger()
6+
assert not logger.handlers, "The logger should not have its own handlers"
7+
assert logger.propagate, "The logger should propagate to the root logger"
8+
assert logger.hasHandlers(), "The logger should be able to access the root logger's handler"

0 commit comments

Comments
 (0)