Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.
 
 
 
 
 
 

33 lignes
1.1 KiB

  1. # Copyright 2020 The Matrix.org Foundation C.I.C.
  2. #
  3. # Licensed under the Apache License, Version 2.0 (the "License");
  4. # you may not use this file except in compliance with the License.
  5. # You may obtain a copy of the License at
  6. #
  7. # http://www.apache.org/licenses/LICENSE-2.0
  8. #
  9. # Unless required by applicable law or agreed to in writing, software
  10. # distributed under the License is distributed on an "AS IS" BASIS,
  11. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. # See the License for the specific language governing permissions and
  13. # limitations under the License.
  14. import logging
  15. from typing_extensions import Literal
  16. class MetadataFilter(logging.Filter):
  17. """Logging filter that adds constant values to each record.
  18. Args:
  19. metadata: Key-value pairs to add to each record.
  20. """
  21. def __init__(self, metadata: dict):
  22. self._metadata = metadata
  23. def filter(self, record: logging.LogRecord) -> Literal[True]:
  24. for key, value in self._metadata.items():
  25. setattr(record, key, value)
  26. return True