Git Product home page Git Product logo

cloudwatch-logback-appender's People

Contributors

alexfoxgill avatar dependabot[bot] avatar fs-aikito avatar j256 avatar jsyrjala avatar sokrim avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

cloudwatch-logback-appender's Issues

CloudWatchAppender does not work after adding more appenders

CloudWatchAppender suddenly does not send any log events to CloudWatch Logs after I add one more appender.

Previously

<configuration>
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>/var/log/%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <maxFileSize>100MB</maxFileSize>
            <maxHistory>30</maxHistory>
            <totalSizeCap>1GB</totalSizeCap>
        </rollingPolicy>

        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%-25thread] %-5level %-36logger{36} - %msg%n%xThrowable</pattern>
        </encoder>
    </appender>

    <appender name="CLOUDWATCH" class="com.j256.cloudwatchlogbackappender.CloudWatchAppender">
        <region>ap-southeast-1</region>
        <logGroup>backend-server</logGroup>
        <logStream>dev</logStream>
        <layout>
            <pattern>[%thread] %level %logger{36} - %msg%n%xThrowable</pattern>
        </layout>
    </appender>

    <root level="debug">
        <appender-ref ref="FILE" />
        <appender-ref ref="CLOUDWATCH" />
    </root>
</configuration>

Added one more appender

<configuration>
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>/var/log/%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <maxFileSize>100MB</maxFileSize>
            <maxHistory>30</maxHistory>
            <totalSizeCap>1GB</totalSizeCap>
        </rollingPolicy>

        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%-25thread] %-5level %-36logger{36} - %msg%n%xThrowable</pattern>
        </encoder>
    </appender>

    <appender name="CLOUDWATCH-DEBUG" class="com.j256.cloudwatchlogbackappender.CloudWatchAppender">
        <region>ap-southeast-1</region>
        <logGroup>backend-server/dev</logGroup>
        <logStream>DEBUG</logStream>
        <layout>
            <pattern>[%thread] %level %logger{36} - %msg%n%xThrowable</pattern>
        </layout>
    </appender>

    <appender name="CLOUDWATCH-ERROR" class="com.j256.cloudwatchlogbackappender.CloudWatchAppender">
        <region>ap-southeast-1</region>
        <logGroup>backend-server/dev</logGroup>
        <logStream>ERROR</logStream>
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>ERROR</level>
        </filter>
        <layout>
            <pattern>[%thread] %level %logger{36} - %msg%n%xThrowable</pattern>
        </layout>
    </appender>

    <root>
        <appender-ref ref="FILE" />
        <appender-ref ref="CLOUDWATCH-DEBUG" />
        <appender-ref ref="CLOUDWATCH-ERROR" />
    </root>
</configuration>

I did not change anything else except the logback.xml file. Any idea?

Bumping dependency library versions

aws-sdk and logback version used in this library seems outdated.

I'm having this error and I suspect sdk version mismatch caused this. (I'm using 1.11.285 in my application)

Exception in thread "CloudWatchAppender" java.lang.NoSuchMethodError: com.amazonaws.http.ExecutionContext.setCredentials(Lcom/amazonaws/auth/AWSCredentials;)V
    at com.amazonaws.services.ec2.AmazonEC2Client.invoke(AmazonEC2Client.java:12365)
    at com.amazonaws.services.ec2.AmazonEC2Client.describeTags(AmazonEC2Client.java:7603)
    at com.j256.cloudwatchlogbackappender.CloudWatchAppender$CloudWatchWriter.lookupInstanceName(CloudWatchAppender.java:623)
    at com.j256.cloudwatchlogbackappender.CloudWatchAppender$CloudWatchWriter.createLogsClient(CloudWatchAppender.java:502)
    at com.j256.cloudwatchlogbackappender.CloudWatchAppender$CloudWatchWriter.writeEvents(CloudWatchAppender.java:407)
    at com.j256.cloudwatchlogbackappender.CloudWatchAppender$CloudWatchWriter.run(CloudWatchAppender.java:374)
    at java.lang.Thread.run(Thread.java:748)

Can you bump them?

Considering using DefaultAWSCredentialsProviderChain

I'm just looking at several of the Logback appenders for CloudWatch and noticed you require that the key and secret be in logback.xml and use BasicAWSCredentials. If you switched to DefaultAWSCredentialsProviderChain then users could inject their credentials several different ways (env var, sys props, .aws/credentials, ec2 container creds) w/o having to check them in their VCS.

Exception thrown: java.lang.NoSuchMethodError: 'void ch.qos.logback.classic.spi.LoggingEvent.setMarker(org.slf4j.Marker)

cloudwatchlogappender's latest version does not work with the latest versions of logback/slf4j

Dependencies:

  <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>2.0.4</version>
    </dependency>
    <dependency>
        <groupId>com.j256.cloudwatchlogbackappender</groupId>
        <artifactId>cloudwatchlogbackappender</artifactId>
        <version>2.1</version>
    </dependency>
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.4.5</version>
    </dependency>

Error Logs:

Exception in thread "main" java.lang.NoSuchMethodError: 'void ch.qos.logback.classic.spi.LoggingEvent.setMarker(org.slf4j.Marker)'

at com.j256.cloudwatchlogbackappender.CloudWatchAppender.copyEvent(CloudWatchAppender.java:410)
at com.j256.cloudwatchlogbackappender.CloudWatchAppender.append(CloudWatchAppender.java:218)
at com.j256.cloudwatchlogbackappender.CloudWatchAppender.append(CloudWatchAppender.java:60)
at ch.qos.logback.core.UnsynchronizedAppenderBase.doAppend(UnsynchronizedAppenderBase.java:85)
at ch.qos.logback.core.spi.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:51)
at ch.qos.logback.classic.Logger.appendLoopOnAppenders(Logger.java:272)
at ch.qos.logback.classic.Logger.callAppenders(Logger.java:259)
at ch.qos.logback.classic.Logger.buildLoggingEventAndAppend(Logger.java:426)
at ch.qos.logback.classic.Logger.filterAndLog_0_Or3Plus(Logger.java:386)
at ch.qos.logback.classic.Logger.info(Logger.java:584)
at org.example.App.doLogs(App.java:17)
at org.example.App.main(App.java:13)

MDC data is not included in log events

I'm using logstash/logstash-logback-encoder with cloudwatch-logback-appender in a REST API service and in some instances the log events are missing all MDC entries.

My guess what is happening that the log event has a reference to the MDC, and I'm clearing the MDC at the end of my request processing[1]. If the event sits in the appender internal queue too long, it will read the MDC data after it has been cleared.

If that is the case then one solution would be to store a copy of MDC contents to the LoggingEvent in the synchronous path, similarly as thread name is handled here:

https://github.com/j256/cloudwatch-logback-appender/blob/master/src/main/java/com/j256/cloudwatchlogbackappender/CloudWatchAppender.java#L179

[1] See the logback MDC servlet filter for an example: https://logback.qos.ch/xref/ch/qos/logback/classic/helpers/MDCInsertingServletFilter.html

selectively import aws sdk dependencies instead of full one

hey.
I've been using your project. in my dependencies, besides your package, I also needes the aws sdk. Since I didn't want to import the full sdk (which adds almost 100MB to the output jar), I've figured out which parts of the sdk you use. following the aws sdk instructions, I ended up with something like this (for gradle but I guess you can figure out the maven equivalent):

[...]
buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath "io.spring.gradle:dependency-management-plugin:1.0.3.RELEASE"
    }
}
apply plugin: "io.spring.dependency-management"
[...]
dependencyManagement {
    imports {
        mavenBom 'com.amazonaws:aws-java-sdk-bom:1.11.228'
    }
}
dependencies {
[...]
    compile group: "com.j256.cloudwatchlogbackappender", name: "cloudwatchlogbackappender", version: "1.10"
    compile 'com.amazonaws:aws-java-sdk-cloudwatch'
    compile 'com.amazonaws:aws-java-sdk-ec2'
    compile 'com.amazonaws:aws-java-sdk-logs'
}

It would be nice to find something like this in the README.
Cheers

Submitting batch fails when contains events larger than 256 kB

When a batch of log events contains one (or more) events that are larger than AWS set limit of 256 kB, submitting the whole batch fails and the events will be appended to emergency appender. I'm not actually sure what would be preferable behavior here; I feel like it would make sense to filter such events preemptively and maybe write only those particular events to emergency appender (and emit appropriate warning), allowing the rest of the events to be processed successfully.

Admittedly having log events be over 256k is bit stupid on my part, but such things do happen occasionally.

logStream naming issue

I'm using the following:
<logStream>general-%{instanceName}-%{instanceId}</logStream>
The reason being, that I have several docker instances with the same InstanceName for which I'd like to create separate streams for.
However, In CloudWatch the stream created end up as:
general-unknown-i-08887b38c3ca3....
Now, even if the name was not properly inferred, shouldn't I be seeing the instanceId twice instead of an "unknown" within the name?

Log stream patterns with ':' in them are not working

This one is working: stream-%instance-%date{yyyyMMdd,UTC}-%uuid
This one is not working: stream-%date{yyyyMMdd,UTC}-%uuid
This one as well doesn't work: stream-%address-%date{yyyyMMdd,UTC}-%uuid

Is there a way to print the issues and see why it's not working when %instance is not specified?

Fail to retrieve token : com.amazonaws.SdkClientException: Failed to connect to service endpoint

Expected Behavior

Send the logs to aws cloud watch as other languages does

Current Behavior

Error ar the startup of spring boot application:
Fail to retrieve token : com.amazonaws.SdkClientException: Failed to connect to service endpoint

Steps to Reproduce

  1. To have a ready to use classic spring boot api
  2. Add these dependendencies:
<dependency>
  <groupId>org.apache.httpcomponents</groupId>
  <artifactId>httpclient</artifactId>
  <version>4.5.9</version>			
</dependency>
<dependency>
  <groupId>com.j256.cloudwatchlogbackappender</groupId>
  <artifactId>cloudwatchlogbackappender</artifactId>
  <version>2.1</version>
</dependency>
<dependency>
  <groupId>org.codehaus.janino</groupId>
  <artifactId>janino</artifactId>
</dependency>
  1. Add this configuration
<appender name="cloudWatchAppender" class="com.j256.cloudwatchlogbackappender.CloudWatchAppender">
	<region>${META_LOG_AWS_DEFAULT_REGION}</region>
	<logGroup>${META_LOG_AWS_GROUP_NAME}</logGroup>
	<logStream>${META_LOG_AWS_STREAM_NAME}</logStream>
	<accessKeyId>596fe817-5aef-4a13-8d56-f76dc6db26c9</accessKeyId>
	<secretKey>196d6918-466b-48c1-b5c6-af3d51d21f81</secretKey>
	<layout>
		<pattern>[%thread] %level %logger{20} - %msg%n%xThrowable</pattern>
	</layout>
</appender>	
  1. Start the api in my localhost

Context (Environment)

  • Linux
  • Eclipse IDE for Enterprise Java and Web Developers (includes Incubating components) Version: 2021-03 (4.19.0)

Additional

On c# and nodejs, the same parameters in the same machine, worked. It was not necessary other configurations

Log

2022-08-31 16:05:24.340 [] [] [] []  WARN 19696 --- [CloudWatchAppender] i.InstanceMetadataServiceResourceFetcher : Fail to retrieve token 

com.amazonaws.SdkClientException: Failed to connect to service endpoint: 
	at com.amazonaws.internal.EC2ResourceFetcher.doReadResource(EC2ResourceFetcher.java:100)
	at com.amazonaws.internal.InstanceMetadataServiceResourceFetcher.getToken(InstanceMetadataServiceResourceFetcher.java:91)
	at com.amazonaws.internal.InstanceMetadataServiceResourceFetcher.readResource(InstanceMetadataServiceResourceFetcher.java:69)
	at com.amazonaws.internal.EC2ResourceFetcher.readResource(EC2ResourceFetcher.java:66)
	at com.amazonaws.util.EC2MetadataUtils.getItems(EC2MetadataUtils.java:403)
	at com.amazonaws.util.EC2MetadataUtils.getData(EC2MetadataUtils.java:372)
	at com.amazonaws.util.EC2MetadataUtils.getData(EC2MetadataUtils.java:368)
	at com.amazonaws.util.EC2MetadataUtils.fetchData(EC2MetadataUtils.java:422)
	at com.amazonaws.util.EC2MetadataUtils.fetchData(EC2MetadataUtils.java:416)
	at com.amazonaws.util.EC2MetadataUtils.getInstanceId(EC2MetadataUtils.java:136)
	at com.j256.cloudwatchlogbackappender.CloudWatchAppender$CloudWatchWriter.lookupInstanceName(CloudWatchAppender.java:712)
	at com.j256.cloudwatchlogbackappender.CloudWatchAppender$CloudWatchWriter.createLogsClient(CloudWatchAppender.java:622)
	at com.j256.cloudwatchlogbackappender.CloudWatchAppender$CloudWatchWriter.writeEvents(CloudWatchAppender.java:534)
	at com.j256.cloudwatchlogbackappender.CloudWatchAppender$CloudWatchWriter.run(CloudWatchAppender.java:497)
	at java.lang.Thread.run(Thread.java:748)
Caused by: java.net.SocketException: Connection reset
	at java.net.SocketInputStream.read(SocketInputStream.java:210)
	at java.net.SocketInputStream.read(SocketInputStream.java:141)
	at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
	at java.io.BufferedInputStream.read1(BufferedInputStream.java:286)
	at java.io.BufferedInputStream.read(BufferedInputStream.java:345)
	at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:735)
	at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:678)
	at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:706)
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1593)
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1498)
	at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480)
	at com.amazonaws.internal.EC2ResourceFetcher.doReadResource(EC2ResourceFetcher.java:82)
	... 14 common frames omitted

2022-08-31 16:05:24.342 [] [] [] []  WARN 19696 --- [CloudWatchAppender] com.amazonaws.util.EC2MetadataUtils      : Unable to retrieve the requested metadata (/latest/meta-data/instance-id). Failed to connect to service endpoint: 

com.amazonaws.SdkClientException: Failed to connect to service endpoint: 
	at com.amazonaws.internal.EC2ResourceFetcher.doReadResource(EC2ResourceFetcher.java:100)
	at com.amazonaws.internal.InstanceMetadataServiceResourceFetcher.getToken(InstanceMetadataServiceResourceFetcher.java:91)
	at com.amazonaws.internal.InstanceMetadataServiceResourceFetcher.readResource(InstanceMetadataServiceResourceFetcher.java:69)
	at com.amazonaws.internal.EC2ResourceFetcher.readResource(EC2ResourceFetcher.java:66)
	at com.amazonaws.util.EC2MetadataUtils.getItems(EC2MetadataUtils.java:403)
	at com.amazonaws.util.EC2MetadataUtils.getData(EC2MetadataUtils.java:372)
	at com.amazonaws.util.EC2MetadataUtils.getData(EC2MetadataUtils.java:368)
	at com.amazonaws.util.EC2MetadataUtils.fetchData(EC2MetadataUtils.java:422)
	at com.amazonaws.util.EC2MetadataUtils.fetchData(EC2MetadataUtils.java:416)
	at com.amazonaws.util.EC2MetadataUtils.getInstanceId(EC2MetadataUtils.java:136)
	at com.j256.cloudwatchlogbackappender.CloudWatchAppender$CloudWatchWriter.lookupInstanceName(CloudWatchAppender.java:712)
	at com.j256.cloudwatchlogbackappender.CloudWatchAppender$CloudWatchWriter.createLogsClient(CloudWatchAppender.java:622)
	at com.j256.cloudwatchlogbackappender.CloudWatchAppender$CloudWatchWriter.writeEvents(CloudWatchAppender.java:534)
	at com.j256.cloudwatchlogbackappender.CloudWatchAppender$CloudWatchWriter.run(CloudWatchAppender.java:497)
	at java.lang.Thread.run(Thread.java:748)
Caused by: java.net.SocketException: Connection reset
	at java.net.SocketInputStream.read(SocketInputStream.java:210)
	at java.net.SocketInputStream.read(SocketInputStream.java:141)
	at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
	at java.io.BufferedInputStream.read1(BufferedInputStream.java:286)
	at java.io.BufferedInputStream.read(BufferedInputStream.java:345)
	at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:735)
	at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:678)
	at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:706)
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1593)
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1498)
	at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480)
	at com.amazonaws.internal.EC2ResourceFetcher.doReadResource(EC2ResourceFetcher.java:82)
	... 14 common frames omitted

NoSuchMethodError: createLogGroup

Hey!

I am trying to use your library but i am getting this error.

Exception in thread "CloudWatchAppender" java.lang.NoSuchMethodError: com.amazonaws.services.logs.AWSLogsClient.createLogGroup(Lcom/amazonaws/services/logs/model/CreateLogGroupRequest;)V
	at com.j256.cloudwatchlogbackappender.CloudWatchAppender$CloudWatchWriter.verifyLogGroupExists(CloudWatchAppender.java:505)
	at com.j256.cloudwatchlogbackappender.CloudWatchAppender$CloudWatchWriter.initialize(CloudWatchAppender.java:490)
	at com.j256.cloudwatchlogbackappender.CloudWatchAppender$CloudWatchWriter.writeEvents(CloudWatchAppender.java:402)
	at com.j256.cloudwatchlogbackappender.CloudWatchAppender$CloudWatchWriter.run(CloudWatchAppender.java:369)
	at java.lang.Thread.run(Thread.java:748)

I have included in my pom.xml

<dependency>
	<groupId>com.j256.cloudwatchlogbackappender</groupId>
	<artifactId>cloudwatchlogbackappender</artifactId>
	<version>1.8</version>
</dependency>

Before of this, because I am using the aws-sdk, I have included:

<properties>
	<project.aws>1.11.109</project.aws>
</properties>
<dependency>
	<groupId>com.amazonaws</groupId>
	<artifactId>aws-java-sdk</artifactId>
	<version>${project.aws}</version>
</dependency>

Can you figure out what is happening?

Thanks!

Question: Contention with jasypt-spring-boot when running Spring Boot app as executable jar?

Have you guys ever run into this? Running this app in an IDE works like a champ. However, when running the app as an executable jar from the CLI it shuts down as soon as the logback code is hit with no errors. Commenting out the cloudwatch appender definitions & references in logback-spring.xml works, as does not instantiating the StandardEncryptableEnvironment in the main method of the SpringApplication class. Obviously neither solution is workable :(

Here's our main class:

package com.somepackagename;

import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;

import com.ulisesbocchio.jasyptspringboot.environment.StandardEncryptableEnvironment;

@SpringBootApplication
public class MyApplication {

    public static void main(String... args) {
    
        new SpringApplicationBuilder()
                .environment(new StandardEncryptableEnvironment())
                .sources(MyApplication.class).run(args);
        
    }
}

We're using v1.10 of your appender and Logback with slf4j v1.7.12. It is perfectly happy with our configuration, and our test cases all pass with flying colors. Let me know if you've run across this issue or have any ideas. Thanks!

Socket not created by this factory

Hi,

while testing the appender on my local environment, i am getting this:

java.lang.IllegalStateException: Socket not created by this factory
	at org.apache.http.util.Asserts.check(Asserts.java:34)
	at org.apache.http.conn.ssl.SSLSocketFactory.isSecure(SSLSocketFactory.java:435)
	at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:186)
	at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:326)
	at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:610)
	at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:445)
	at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:835)
	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)
	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:56)
	at com.amazonaws.http.AmazonHttpClient.executeOneRequest(AmazonHttpClient.java:822)
	at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:576)
	at com.amazonaws.http.AmazonHttpClient.doExecute(AmazonHttpClient.java:362)
	at com.amazonaws.http.AmazonHttpClient.executeWithTimer(AmazonHttpClient.java:328)
	at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:307)
	at com.amazonaws.services.logs.AWSLogsClient.invoke(AWSLogsClient.java:1799)
	at com.amazonaws.services.logs.AWSLogsClient.putLogEvents(AWSLogsClient.java:1515)
	at com.j256.cloudwatchlogbackappender.CloudWatchAppender$CloudWatchWriter.writeEvents(CloudWatchAppender.java:448)
	at com.j256.cloudwatchlogbackappender.CloudWatchAppender$CloudWatchWriter.run(CloudWatchAppender.java:374)
	at java.lang.Thread.run(Thread.java:748)

My appender config file is pretty standard and 1:1 from the docs. Anybody an idea?
Thanks

Support Non-EC2 Launch?

If I am using this at my local machine, and I get this following error.

com.amazonaws.SdkClientException: Failed to connect to service endpoint: at com.amazonaws.internal.EC2ResourceFetcher.doReadResource(EC2ResourceFetcher.java:100) at com.amazonaws.internal.EC2ResourceFetcher.doReadResource(EC2ResourceFetcher.java:70) at com.amazonaws.internal.InstanceMetadataServiceResourceFetcher.readResource(InstanceMetadataServiceResourceFetcher.java:75) at com.amazonaws.internal.EC2ResourceFetcher.readResource(EC2ResourceFetcher.java:66) at com.amazonaws.util.EC2MetadataUtils.getItems(EC2MetadataUtils.java:403) at com.amazonaws.util.EC2MetadataUtils.getData(EC2MetadataUtils.java:372) at com.amazonaws.util.EC2MetadataUtils.getData(EC2MetadataUtils.java:368) at com.amazonaws.util.EC2MetadataUtils.fetchData(EC2MetadataUtils.java:422) at com.amazonaws.util.EC2MetadataUtils.fetchData(EC2MetadataUtils.java:416) at com.amazonaws.util.EC2MetadataUtils.getInstanceId(EC2MetadataUtils.java:136) at com.j256.cloudwatchlogbackappender.CloudWatchAppender$CloudWatchWriter.lookupInstanceName(CloudWatchAppender.java:712) at com.j256.cloudwatchlogbackappender.CloudWatchAppender$CloudWatchWriter.createLogsClient(CloudWatchAppender.java:622) at com.j256.cloudwatchlogbackappender.CloudWatchAppender$CloudWatchWriter.writeEvents(CloudWatchAppender.java:534) at com.j256.cloudwatchlogbackappender.CloudWatchAppender$CloudWatchWriter.run(CloudWatchAppender.java:497) at java.lang.Thread.run(Thread.java:748)

Can you make it so the "addr" can use the local IP ?

Localstack support

This library saved me a lot of time! Thanks.
It would be great to have a logback property to specify the endpoint_url in order to send logs to localstack.

Localstack is a tool for running AWS services in a docker container on port 4566.
I used apigateway, lambda, dynamodb, and s3 during development and in tests (including GitHub actions). Thus, to use AWS services with localstack you have to send all requests to localhost:4566 instead of the real AWS endpoints.

https://localstack.cloud

Undocumented AWS SDK Dependencies

It took me some time to figure out which AWS SDK dependencies are needed to use the library. The entire AWS SDK has about 80 MiB but it seems, the components aws-java-sdk-logs and aws-java-sdk-ec2 are sufficient. Maybe this should be added to the README.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.