|
| 1 | +from __future__ import annotations |
| 2 | + |
1 | 3 | import inspect |
2 | 4 | import json |
3 | 5 | import logging |
|
8 | 10 | from functools import partial |
9 | 11 | from typing import Any, Callable, Dict, Iterable, List, Optional, Tuple, Union |
10 | 12 |
|
11 | | -from ..shared import constants |
12 | | -from ..shared.functions import powertools_dev_is_set |
| 13 | +from aws_lambda_powertools.logging.types import LogRecord |
| 14 | +from aws_lambda_powertools.shared import constants |
| 15 | +from aws_lambda_powertools.shared.functions import powertools_dev_is_set |
13 | 16 |
|
14 | 17 | RESERVED_LOG_ATTRS = ( |
15 | 18 | "name", |
@@ -66,12 +69,12 @@ class LambdaPowertoolsFormatter(BasePowertoolsFormatter): |
66 | 69 |
|
67 | 70 | def __init__( |
68 | 71 | self, |
69 | | - json_serializer: Optional[Callable[[Dict], str]] = None, |
70 | | - json_deserializer: Optional[Callable[[Union[Dict, str, bool, int, float]], str]] = None, |
71 | | - json_default: Optional[Callable[[Any], Any]] = None, |
72 | | - datefmt: Optional[str] = None, |
| 72 | + json_serializer: Callable[[LogRecord], str] | None = None, |
| 73 | + json_deserializer: Callable[[Dict | str | bool | int | float], str] | None = None, |
| 74 | + json_default: Callable[[Any], Any] | None = None, |
| 75 | + datefmt: str | None = None, |
73 | 76 | use_datetime_directive: bool = False, |
74 | | - log_record_order: Optional[List[str]] = None, |
| 77 | + log_record_order: List[str] | None = None, |
75 | 78 | utc: bool = False, |
76 | 79 | use_rfc3339: bool = False, |
77 | 80 | **kwargs, |
@@ -144,7 +147,7 @@ def __init__( |
144 | 147 |
|
145 | 148 | super().__init__(datefmt=self.datefmt) |
146 | 149 |
|
147 | | - def serialize(self, log: Dict) -> str: |
| 150 | + def serialize(self, log: LogRecord) -> str: |
148 | 151 | """Serialize structured log dict to JSON str""" |
149 | 152 | return self.json_serializer(log) |
150 | 153 |
|
|
0 commit comments