Alemiz112 / LogDNA-Log4J2

Simple Log4J2 appender for sending logs to LogDNA

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Simple LogDNA log publisher

This library provides an appender for Log4J2 which allows log publishing to LogDNA.
This backend use LogDNA ingestion api.

Usage example

During runtime (using code):

        LogDNAAppenderBuilder builder = new LogDNAAppenderBuilder();
        builder.token(token); // Ingest token
        builder.appName(appName); // Application name shown in LogDNA reports
        builder.logStackTrace(true); // Handle stacktraces from logger
        builder.supportMdc(true); // Send Log4j2's Context Data as metadata which are searchable
        builder.layout(patternLayout); // Your log pattern here
        builder.async(true); // Whatever send logs asynchronously without blocking current thread
        builder.hostname(hostName); // If not set System hostname will be used 

        // Create and start appender
        LogDNAAppender appender = builder.build();
        appender.start();

        LoggerContext context = (LoggerContext) LogManager.getContext(false);
        Configuration config = context.getConfiguration();

        // Add appender to root logger and config
        config.addAppender(appender);
        context.getRootLogger().addAppender(config.getAppender(appender.getName()));
        context.updateLoggers();

Using configuration file:

Add to appenders list:

        <LogDNAAppender name="LogDNA">
            <token>your-token-here</token>
            <appName>app-name</appName>
            <logStackTrace>true</logStackTrace>
            <supportMdc>true</supportMdc>
            <async>true</async>
            <PatternLayout pattern="%date %level method: %class{1}.%method (%file:%line) - %message%n"/>
        </LogDNAAppender>

Dont forget to mention appender inside of loggers list:

    <Loggers>
        <Root level="all">
            <!--Your loggers here-->
            <AppenderRef ref="LogDNA" level="debug"/>
        </Root>
    </Loggers>

Libraries

  • Using OkHttp client for http calls.
  • Google Gson for work with json objects.
  • And of course Log4J2, version 2.11.2

About

Simple Log4J2 appender for sending logs to LogDNA


Languages

Language:Java 100.0%