|
| 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