---
# Copyright 2018 the original author or authors.
#
# 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:
            # yamllint disable-line rule:line-length
            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

    loggers:
        conf:
            # yamllint disable-line rule:truthy
            propagate: False
        # root logger
        '':
            handlers: [console]

            # log level can be bumped up/down by a -q and -v command line option
            level: DEBUG
            # yamllint disable-line rule:truthy
            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]
