Skip to content
Snippets Groups Projects
logger.py 1.67 KiB
Newer Older
  • Learn to ignore specific revisions
  • Ricard Vilalta's avatar
    Ricard Vilalta committed
    #!/usr/bin/python
    #
    
    Lluis Gifre Renom's avatar
    Lluis Gifre Renom committed
    # Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/)
    
    Ricard Vilalta's avatar
    Ricard Vilalta committed
    #
    # Licensed under the Apache License, Version 2.0 (the "License");
    # you may not use this file except in compliance with the License.
    # You may obtain a copy of the License at
    #
    #      http://www.apache.org/licenses/LICENSE-2.0
    #
    # Unless required by applicable law or agreed to in writing, software
    # distributed under the License is distributed on an "AS IS" BASIS,
    # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    # See the License for the specific language governing permissions and
    # limitations under the License.
    
    import logging
    import sys
    from pythonjsonlogger import jsonlogger
    
    
    # TODO(yoshifumi) this class is duplicated since other Python services are
    # not sharing the modules for logging.
    class CustomJsonFormatter(jsonlogger.JsonFormatter):
        def add_fields(self, log_record, record, message_dict):
            super(CustomJsonFormatter, self).add_fields(log_record, record, message_dict)
            if not log_record.get('timestamp'):
                log_record['timestamp'] = record.created
            if log_record.get('severity'):
                log_record['severity'] = log_record['severity'].upper()
            else:
                log_record['severity'] = record.levelname
    
    
    def getJSONLogger(name):
        logger = logging.getLogger(name)
        handler = logging.StreamHandler(sys.stdout)
        # formatter = CustomJsonFormatter('(timestamp) (severity) (name) (message)')
        formatter = logging.Formatter('[%(asctime)s] {%(pathname)s:%(lineno)d} %(levelname)s - %(message)s')
        handler.setFormatter(formatter)
        logger.addHandler(handler)
        logger.setLevel(logging.DEBUG)
        return logger