aws-cloudformation / aws-cloudformation/cloudformation-cli-python-plugin

Setting Log Handler Formatter

オープン
#189 コメント 0 件 リアクション 1 件 担当者 1 名 @ericzbeard が担当を希望しています GitHub で見る
enhancement investigating p2
主要言語
Python
スター
107
フォーク
46
PR マージ指標
30日以内にマージされた PR はありません

説明

I'd like to have logs formatted using [ecs_logging](https://www.elastic.co/guide/en/ecs-logging/python/current/installation.html#logging) and noticed adding a handler to my app does nothing to change the log format in the CloudWatch LogGroup.

This for example has no impact to log format:
```
LOGGER = logging.getLogger(__package__)
LOGGER.setLevel(level=logging.INFO)
handler = logging.StreamHandler()
handler.setFormatter(ecs_logging.StdlibFormatter())
LOGGER.addHandler(handler)
```

I also tried brute forcing the formatter with no luck:
```
def set_formatter():
for logger in logging.root.manager.loggerDict.values():
if isinstance(logger, logging.PlaceHolder):
continue

if logger.hasHandlers():
for handler in logger.handlers:
handler.setFormatter(ecs_logging.StdlibFormatter())

@hook.handler(HookInvocationPoint.CREATE_PRE_PROVISION)
def pre_create_handler(
session: Optional[SessionProxy],
request: BaseHookHandlerRequest,
callback_context: MutableMapping[str, Any],
type_configuration: TypeConfigurationModel,
) -> ProgressEvent:
set_formatter()
LOGGER.info(jsonify_hook_context(request=request))
return ProgressEvent(status=OperationStatus.SUCCESS)
```

Is there a way to set the format for log output using this library?

コントリビューションガイド

コントリビューションガイドを開く

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。