---
# Copyright 2019-present ADTRAN, Inc.
#
# 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.

logging:
    version: 1

    formatters:
      brief:
        format: '%(message)s'
      default:
        format: '%(asctime)s.%(msecs)03d %(levelname)-8s %(threadName)s %(module)s.%(funcName)s %(message)s'
        datefmt: '%Y%m%dT%H%M%S'

    handlers:
        console:
            class : logging.StreamHandler
            level: DEBUG
            formatter: default
            stream: ext://sys.stdout
        localRotatingFile:
            class: logging.handlers.RotatingFileHandler
            filename: adtran_onu.log
            formatter: default
            maxBytes: 2097152
            backupCount: 10
            level: DEBUG
        null:
            class: logging.NullHandler

    loggers:
        amqp:
            handlers: [null]
            propagate: False
        conf:
            propagate: False
        '': # root logger
            handlers: [console, localRotatingFile]
            level: DEBUG # this can be bumped up/down by -q and -v command line
                        # options
            propagate: False


kafka-cluster-proxy:
    event_bus_publisher:
        topic_mappings:
            'model-change-events':
                kafka_topic: 'voltha.events'
                filters:     [null]
            'alarms':
                kafka_topic: 'voltha.alarms'
                filters:     [null]
            'kpis':
                kafka_topic: 'voltha.kpis'
                filters:     [null]
            'openomci-events':
                kafka_topic: 'voltha.events'
                filters:     [null]
