Skip to content

Commit e1b15fb

Browse files
committed
Rename logger file
1 parent 439a549 commit e1b15fb

File tree

6 files changed

+55
-5
lines changed

6 files changed

+55
-5
lines changed

fingr.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import asyncio
88
import warnings
99

10-
from fingr.logging import configure_logging
10+
from fingr.log import configure_logging
1111
from fingr.server import start_server
1212

1313
# Quiet the specific pysolar leap-second message so it doesn't spam logs

fingr/config.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import os
44
import secrets
55

6-
from .logging import get_logger
6+
from .log import get_logger
77

88
logger = get_logger(__name__)
99

fingr/location.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
from geopy.geocoders import Nominatim # type: ignore[import-untyped]
1111
from redis.exceptions import ConnectionError, RedisError
1212

13-
from .logging import get_logger
13+
from .log import get_logger
1414
from .metrics import location_cache_operations, location_resolution_duration, track_time
1515

1616
logger = get_logger(__name__)

fingr/log.py

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
"""Centralized logging configuration using structlog."""
2+
3+
import logging
4+
import sys
5+
6+
import structlog
7+
8+
9+
def configure_logging(verbose: bool = False) -> None:
10+
"""Configure structlog for the application.
11+
12+
Args:
13+
verbose: If True, set log level to DEBUG, otherwise INFO
14+
"""
15+
log_level = logging.DEBUG if verbose else logging.INFO
16+
17+
# Configure standard library logging
18+
logging.basicConfig(
19+
format="%(message)s",
20+
stream=sys.stdout,
21+
level=log_level,
22+
)
23+
24+
# Configure structlog
25+
structlog.configure(
26+
processors=[
27+
structlog.contextvars.merge_contextvars,
28+
structlog.processors.add_log_level,
29+
structlog.processors.StackInfoRenderer(),
30+
structlog.dev.set_exc_info,
31+
structlog.processors.TimeStamper(fmt="%Y-%m-%d %H:%M:%S", utc=False),
32+
structlog.dev.ConsoleRenderer(),
33+
],
34+
wrapper_class=structlog.make_filtering_bound_logger(log_level),
35+
context_class=dict,
36+
logger_factory=structlog.PrintLoggerFactory(),
37+
cache_logger_on_first_use=True,
38+
)
39+
40+
41+
def get_logger(name: str) -> structlog.BoundLogger:
42+
"""Get a structlog logger for a module.
43+
44+
Args:
45+
name: Module name, typically __name__
46+
47+
Returns:
48+
Configured structlog logger
49+
"""
50+
return structlog.get_logger(name)

fingr/server.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
from .config import load_deny_list, load_motd_list, load_user_agent, random_message
1313
from .formatting import format_meteogram, format_oneliner
1414
from .location import RedisClient, get_timezone, resolve_location
15-
from .logging import get_logger
15+
from .log import get_logger
1616
from .metrics import (
1717
formatting_duration,
1818
record_location_request,

fingr/weather.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
from metno_locationforecast import Forecast, Place # type: ignore[import-untyped]
66

7-
from .logging import get_logger
7+
from .log import get_logger
88
from .metrics import (
99
api_request_duration,
1010
api_requests_total,

0 commit comments

Comments
 (0)