All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.antmedia.logger.AntmediaAppender Maven / Gradle / Ivy

Go to download

Ant Media Server supports RTMP, RTSP, MP4, HLS, WebRTC, Adaptive Streaming, etc.

There is a newer version: 2.10.0
Show newest version
package io.antmedia.logger;

import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.classic.spi.IThrowableProxy;
import ch.qos.logback.core.AppenderBase;

/**
 * Appender for logback in charge of sending the logged events to a Google Analytics server.
 */
public class AntmediaAppender extends AppenderBase {
    private final GoogleAnalyticsLogger googleAnalyticsLogger;

    public AntmediaAppender() {
        googleAnalyticsLogger = new GoogleAnalyticsLoggerImp(System.getProperty("red5.root")+"/conf/instanceId");
    }

    public AntmediaAppender(GoogleAnalyticsLogger googleAnalyticsLogger) {
        this.googleAnalyticsLogger = googleAnalyticsLogger;
    }

    @Override
    protected void append(ILoggingEvent iLoggingEvent) {
        if (LoggerEnvironment.isManagingThread()) {
            return;
        }
        LoggerEnvironment.startManagingThread();
        try {
            IThrowableProxy throwbleProxy = iLoggingEvent.getThrowableProxy();
            if (throwbleProxy != null) {
                googleAnalyticsLogger.log(throwbleProxy);
            }
        } catch (Exception e) {
            addError("An exception occurred", e);
        } finally {
            LoggerEnvironment.stopManagingThread();
        }
    }

    @Override
    public void stop() {
        LoggerEnvironment.startManagingThread();
        try {
            if (!isStarted()) {
                return;
            }
            super.stop();
        } catch (Exception e) {
            addError("An exception occurred", e);
        } finally {
            LoggerEnvironment.stopManagingThread();
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy