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

de.jodamob.android.logging.NewRelicLogger Maven / Gradle / Ivy

The newest version!
package de.jodamob.android.logging;

import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.Date;
import com.newrelic.agent.android.NewRelic;


public class NewRelicLogger extends RemoteToolLogger {
    
    public NewRelicLogger() {
        this(new SilentLogger());
    }
    
    public NewRelicLogger(Logging redirectLogger) {
        super(new NewRelicReporter(), redirectLogger);
    }

    private static final class NewRelicReporter implements RemoteReporter {
        
        @Override
        public void reportLoggedException(String message, Throwable tr) {
            long time = new Date().getTime();
            try {
                if (message.isEmpty()) {
                    message = "none";
                }
                NewRelic.noticeNetworkFailure("http://" + URLEncoder.encode(message, "utf-8"), time, time, new Exception(tr));
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
        }
    
        @Override
        public void reportWtfException(Throwable tr) {
            long time = new Date().getTime();
            NewRelic.noticeNetworkFailure("http://WTF", time, time, new Exception(tr));
        }

        @Override
        public void reportWtfException(String message, Throwable tr) {
            long time = new Date().getTime();
            NewRelic.noticeNetworkFailure("http://WTF", time, time, new Exception(message, tr));
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy