samagra-comms / utils

0 stars 13 forks source link

Create a Custom Logger #7

Open ChakshuGautam opened 3 years ago

ChakshuGautam commented 3 years ago

Create a custom logger which can replace the existing Lombok, Sl4j log and can push logs as a stream to Kafka. See this.

  1. Since the logger would mostly be a configuration log42j.xml in spring, try to inject is using Utils to all the other repos.
  2. The library to use -> https://logging.apache.org/log4j/2.x/manual/appenders.html#KafkaAppender
  3. The third step would be to send these to Sunbird Telemetry Service. So telemetry object creation to be part of Utils service. See spec here

Tasks

surabhi-mahawar commented 3 years ago

This is the xml file I am using for sending logs to kafka

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="info" name="spring-boot-kafka-log">
    <Properties>
        <Property name="kafka.topic">${env:KAFKA_LOGS_TOPIC}</Property>
        <Property name="kafka.bootstrap.servers">${env:BOOTSTRAP_SERVERS}</Property>
    </Properties>
    <Appenders>
        <Kafka name="KafkaLogAppender" topic="${kafka.topic}">
            <JSONLayout />
            <!--  <PatternLayout pattern="%date %message"/>  -->
            <Property name="bootstrap.servers">${kafka.bootstrap.servers}</Property>
        </Kafka>

        <Console name="stdout" target="SYSTEM_OUT">
            <PatternLayout
                pattern="%d{HH:mm:ss.SSS} stdout %highlight(%-5p) [%-7t] %F:%L - %m%n" />
        </Console>

        <Console name="stderr" target="SYSTEM_OUT">
            <PatternLayout
                pattern="%d{HH:mm:ss.SSS} stderr %highlight(%-5p) [%-7t] %F:%L - %m%n" />
        </Console>

    </Appenders>
    <Loggers>
        <Root level="INFO">
            <AppenderRef ref="KafkaLogAppender" />
            <AppenderRef ref="stdout" />
            <AppenderRef ref="stderr" />
        </Root>
        <Logger name="org.apache.kafka" level="WARN" />
    </Loggers>
</Configuration>