Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ This library is mostly based on
* SLF4J 2
* Logback + Logback logstash
* GRPC
* [Ecosystem](https://github.com/grpc-ecosystem/grpc-spring)
* Spring GRPC
* [Logbook](https://github.com/zalando/logbook)

Supported web technologies are:
Expand Down
16 changes: 8 additions & 8 deletions azure/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -208,24 +208,24 @@ and
```xml
<dependency>
<groupId>no.entur.logging.cloud</groupId>
<artifactId>spring-boot-starter-azure-grpc-ecosystem</artifactId>
<artifactId>spring-boot-starter-azure-grpc-spring</artifactId>
<version>${cloud-logging.version}</version>
</dependency>
<dependency>
<groupId>no.entur.logging.cloud</groupId>
<artifactId>spring-boot-starter-azure-grpc-ecosystem-test</artifactId>
<artifactId>spring-boot-starter-azure-grpc-spring-test</artifactId>
<version>${cloud-logging.version}</version>
<scope>test</scope>
</dependency>
<!-- request-response logging -->
<dependency>
<groupId>no.entur.logging.cloud</groupId>
<artifactId>request-response-spring-boot-starter-azure-grpc-ecosystem</artifactId>
<artifactId>request-response-spring-boot-starter-azure-grpc-spring</artifactId>
<version>${cloud-logging.version}</version>
</dependency>
<dependency>
<groupId>no.entur.logging.cloud</groupId>
<artifactId>request-response-spring-boot-starter-azure-grpc-ecosystem-test</artifactId>
<artifactId>request-response-spring-boot-starter-azure-grpc-spring-test</artifactId>
<version>${cloud-logging.version}</version>
<scope>test</scope>
</dependency>
Expand Down Expand Up @@ -285,11 +285,11 @@ ext {
add

```groovy
implementation("no.entur.logging.cloud:spring-boot-starter-azure-grpc-ecosystem:${cloudLoggingVersion}")
testImplementation("no.entur.logging.cloud:spring-boot-starter-azure-grpc-ecosystem-test:${cloudLoggingVersion}")
implementation("no.entur.logging.cloud:spring-boot-starter-azure-grpc-spring:${cloudLoggingVersion}")
testImplementation("no.entur.logging.cloud:spring-boot-starter-azure-grpc-spring-test:${cloudLoggingVersion}")
// requst-response logging
implementation("no.entur.logging.cloud:request-response-spring-boot-starter-azure-grpc-ecosystem:${cloudLoggingVersion}")
testImplementation("no.entur.logging.cloud:request-response-spring-boot-starter-azure-grpc-ecosystem-test:${cloudLoggingVersion}")
implementation("no.entur.logging.cloud:request-response-spring-boot-starter-azure-grpc-spring:${cloudLoggingVersion}")
testImplementation("no.entur.logging.cloud:request-response-spring-boot-starter-azure-grpc-spring-test:${cloudLoggingVersion}")
// on-demand logging support
implementation("no.entur.logging.cloud:on-demand-spring-boot-starter-grpc:${cloudLoggingVersion}")
// metrics
Expand Down
2 changes: 1 addition & 1 deletion azure/logback-logstash-encoder-azure/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ dependencies {
api ("ch.qos.logback:logback-core")

api ("net.logstash.logback:logstash-logback-encoder:${logbackLogstashVersion}")
api("com.fasterxml.jackson.core:jackson-core")
api("tools.jackson.core:jackson-core")


}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package no.entur.logging.cloud.azure.logback.logstash;

import ch.qos.logback.classic.spi.ILoggingEvent;
import com.fasterxml.jackson.core.JsonGenerator;
import tools.jackson.core.JsonGenerator;
import net.logstash.logback.composite.AbstractFieldJsonProvider;
import net.logstash.logback.composite.FieldNamesAware;
import net.logstash.logback.composite.JsonWritingUtils;
Expand Down Expand Up @@ -76,9 +76,9 @@ public static String parseServiceNameFromHostname(String host) {
}

@Override
public void writeTo(JsonGenerator generator, ILoggingEvent event) throws IOException {
public void writeTo(JsonGenerator generator, ILoggingEvent event) {
if(service != null) {
generator.writeObjectFieldStart(getFieldName());
generator.writeObjectPropertyStart(getFieldName());

JsonWritingUtils.writeStringField(generator, "service", service);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@

import ch.qos.logback.classic.LoggerContext;
import io.micrometer.core.instrument.MeterRegistry;
import io.micrometer.core.lang.NonNullApi;
import io.micrometer.core.lang.NonNullFields;
import org.slf4j.LoggerFactory;

import java.util.Map;
Expand All @@ -15,8 +13,6 @@
* Logback driver with extra log levels. Originally copied from LogbackMetrics class in micrometer-core.
*
*/
@NonNullApi
@NonNullFields
public class AzureLogbackMetrics extends io.micrometer.core.instrument.binder.logging.LogbackMetrics { // extend since there is not interface type
private final LoggerContext loggerContext;
private final Map<MeterRegistry, AzureMetricsTurboFilter> metricsTurboFilters = new ConcurrentHashMap<>();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,6 @@
import io.micrometer.core.instrument.Counter;
import io.micrometer.core.instrument.MeterRegistry;
import io.micrometer.core.instrument.Tag;
import io.micrometer.core.lang.NonNullApi;
import io.micrometer.core.lang.NonNullFields;
import no.entur.logging.cloud.api.DevOpsLevel;
import no.entur.logging.cloud.api.DevOpsMarker;
import org.slf4j.Marker;
Expand All @@ -18,8 +16,6 @@
import java.util.List;


@NonNullApi
@NonNullFields
public class AzureMetricsTurboFilter extends TurboFilter implements LoggingEventMetrics {

private final Counter alertCounter;
Expand Down

This file was deleted.

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@

dependencies {
api project(":azure:spring-boot-autoconfigure-azure-test")
api project(':azure:request-response-spring-boot-starter-azure-grpc-ecosystem')
api project(':request-response:request-response-spring-boot-autoconfigure-grpc-ecosystem')
api project(':azure:request-response-spring-boot-starter-azure-grpc-spring')
api project(':request-response:request-response-spring-boot-autoconfigure-grpc-spring')

api ("org.entur.jackson:jackson-syntax-highlight:${jacksonSyntaxHighlightVersion}")
api ("org.entur.jackson:jackson-tools-syntax-highlight:${jacksonSyntaxHighlightVersion}")
api ("org.entur.logback-logstash-syntax-highlighting-decorators:logback-logstash-syntax-highlighting-decorators:${logbackLogstashSyntaxHighlightingDecoratorsVersion}")

api ("net.logstash.logback:logstash-logback-encoder:${logbackLogstashVersion}")
api ("com.fasterxml.jackson.core:jackson-core")
api ("tools.jackson.core:jackson-core")

api("org.slf4j:slf4j-api")
api("org.springframework.boot:spring-boot-autoconfigure")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
package no.entur.logging.cloud.gcp.spring.gcp.grpc.ecosystem.test;
package no.entur.logging.cloud.azure.spring.grpc.spring.test;

import no.entur.logging.cloud.gcp.spring.gcp.grpc.ecosystem.RequestResponseGcpGrpcEcosystemAutoConfiguration;
import no.entur.logging.cloud.azure.spring.grpc.spring.RequestResponseAzureGrpcSpringAutoConfiguration;
import no.entur.logging.cloud.spring.rr.grpc.AbstractRequestResponseGrpcSinkAutoConfiguration;
import org.entur.jackson.jsh.AnsiSyntaxHighlight;
import org.entur.jackson.jsh.DefaultSyntaxHighlighter;
import no.entur.logging.cloud.rr.grpc.GrpcSink;
import no.entur.logging.cloud.rr.grpc.test.CompositeSink;
import no.entur.logging.cloud.rr.grpc.test.PrettyPrintingLogLevelLogstashLogbackGrpcSink;
import no.entur.logging.cloud.rr.grpc.test.PrettyPrintingGrpcSink;
import org.entur.jackson.tools.jsh.AnsiSyntaxHighlight;
import org.entur.jackson.tools.jsh.DefaultSyntaxHighlighter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.slf4j.event.Level;
Expand All @@ -17,11 +17,11 @@
import org.springframework.context.annotation.Configuration;

@AutoConfigureBefore(value = {
RequestResponseGcpGrpcEcosystemAutoConfiguration.class,
RequestResponseAzureGrpcSpringAutoConfiguration.class,
})

@Configuration
public class RequestResponseGcpGrpcEcosystemTestAutoConfiguration extends AbstractRequestResponseGrpcSinkAutoConfiguration {
public class RequestResponseAzureGrpcSpringTestAutoConfiguration extends AbstractRequestResponseGrpcSinkAutoConfiguration {

@Bean
@ConditionalOnMissingBean(GrpcSink.class)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
no.entur.logging.cloud.azure.spring.grpc.spring.test.RequestResponseAzureGrpcSpringTestAutoConfiguration
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# request-response-logging for GCP + Spring GRPC
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@ dependencies {
api project(':api')
api project(':azure:logback-logstash-encoder-azure')
api project(':request-response:netty-grpc')
api project(':request-response:request-response-spring-boot-autoconfigure-grpc-ecosystem')
api project(':request-response:request-response-spring-boot-autoconfigure-grpc-spring')

api ("org.slf4j:slf4j-api")
api ("org.springframework.boot:spring-boot-starter")
api ("org.springframework.boot:spring-boot-autoconfigure")
api ("org.springframework.boot:spring-boot-starter-logging")

api("net.devh:grpc-server-spring-boot-starter:${ecosystemGrpcVersion}")
api("org.springframework.grpc:spring-grpc-server-spring-boot-starter:${springGrpcVersion}")

testImplementation("org.springframework.boot:spring-boot-starter-test")
}
Original file line number Diff line number Diff line change
@@ -1,17 +1,14 @@
package no.entur.logging.cloud.azure.spring.grpc.ecosystem;
package no.entur.logging.cloud.azure.spring.grpc.spring;

import no.entur.logging.cloud.spring.grpc.ecosystem.RequestResponseGrpcEcosystemAutoConfiguration;
import no.entur.logging.cloud.spring.rr.grpc.AbstractRequestResponseGrpcSinkAutoConfiguration;
import no.entur.logging.cloud.spring.rr.grpc.GrpcLoggingCloudProperties;
import no.entur.logging.cloud.spring.rr.grpc.RequestResponseGrpcAutoConfiguration;
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;

@Configuration
@AutoConfigureBefore(RequestResponseGrpcAutoConfiguration.class)
public class RequestResponseAzureGrpcEcosystemAutoConfiguration {
public class RequestResponseAzureGrpcSpringAutoConfiguration {

@Bean
public GrpcLoggingCloudProperties grpcLoggingCloudProperties() {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
no.entur.logging.cloud.azure.spring.grpc.spring.RequestResponseAzureGrpcSpringAutoConfiguration
2 changes: 1 addition & 1 deletion azure/spring-boot-autoconfigure-azure-test/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ dependencies {
api("org.springframework.boot:spring-boot-starter-logging")
api("org.springframework.boot:spring-boot-autoconfigure")

api ("org.entur.jackson:jackson-syntax-highlight:${jacksonSyntaxHighlightVersion}")
api ("org.entur.jackson:jackson-tools-syntax-highlight:${jacksonSyntaxHighlightVersion}")
api ("org.entur.logback-logstash-syntax-highlighting-decorators:logback-logstash-syntax-highlighting-decorators:${logbackLogstashSyntaxHighlightingDecoratorsVersion}")

annotationProcessor "org.springframework.boot:spring-boot-configuration-processor:${springBootVersion}"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package no.entur.logging.cloud.azure.spring.test;

import org.entur.decorators.syntaxhighlight.DelegateSyntaxHighlighter;
import org.entur.jackson.jsh.AnsiSyntaxHighlight;
import org.entur.jackson.jsh.SyntaxHighlighter;
import org.entur.jackson.tools.jsh.AnsiSyntaxHighlight;
import org.entur.jackson.tools.jsh.SyntaxHighlighter;

public class LogSeveritySyntaxHighlighter extends DelegateSyntaxHighlighter {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package no.entur.logging.cloud.azure.spring.test;

import com.fasterxml.jackson.core.JsonGenerator;
import org.entur.jackson.tools.jsh.AnsiSyntaxHighlight;
import org.entur.jackson.tools.jsh.DefaultSyntaxHighlighter;
import org.entur.jackson.tools.jsh.SyntaxHighlighter;
import tools.jackson.core.JsonGenerator;
import org.entur.decorators.factory.ConfigurableSyntaxHighlighterFactory;
import org.entur.jackson.jsh.AnsiSyntaxHighlight;
import org.entur.jackson.jsh.DefaultSyntaxHighlighter;
import org.entur.jackson.jsh.SyntaxHighlighter;

public class LogSeveritySyntaxHighlighterFactory extends ConfigurableSyntaxHighlighterFactory {

Expand Down Expand Up @@ -50,9 +50,9 @@ public LogSeveritySyntaxHighlighterFactory() {
}

@Override
public SyntaxHighlighter createSyntaxHighlighter(JsonGenerator generator) {
public SyntaxHighlighter createSyntaxHighlighter() {
if(cachedSyntaxHighlighter == null) {
cachedSyntaxHighlighter = super.createSyntaxHighlighter(generator);
cachedSyntaxHighlighter = super.createSyntaxHighlighter();
}
return new LogSeveritySyntaxHighlighter(cachedSyntaxHighlighter, severity.defaultValue, severity.debug, severity.info, severity.warning, severity.error, loggerName, message);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,15 +55,16 @@
TODO this seems to add an extract space after the last newline,
but as this is just the human readable format, this is not important.
-->
<jsonGeneratorDecorator class="org.entur.decorators.SyntaxHighlightingDecorator">
<decorator class="org.entur.decorators.SyntaxHighlightingMapperBuilderDecorator">
<syntaxHighlighterFactory class="no.entur.logging.cloud.azure.spring.test.LogSeveritySyntaxHighlighterFactory">
<!-- Emulate intellij color scheme: Settings | Editor | Color Scheme | JSON. -->
<stringValue>green</stringValue>
<booleanValue>blue</booleanValue>
<numberValue>blue</numberValue>
<fieldName>magenta</fieldName>
</syntaxHighlighterFactory>
</jsonGeneratorDecorator>
</decorator>
<decorator class="org.entur.decorators.SyntaxHighlightingJsonGeneratorDecorator"/>
</humanReadableJsonEncoder>
<machineReadableJsonEncoder class="no.entur.logging.cloud.azure.logback.logstash.AzureLogstashEncoder">
<!-- note: this encoder will be used to evaluate assertions against log statements -->
Expand Down

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ dependencies {
api("org.springframework.boot:spring-boot-autoconfigure")
api("org.springframework.boot:spring-boot-starter-logging")

api("net.devh:grpc-server-spring-boot-starter:${ecosystemGrpcVersion}")
api("org.springframework.grpc:spring-grpc-server-spring-boot-starter:${springGrpcVersion}")

api "io.grpc:grpc-netty:${grpcNettyVersion}"

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package no.entur.logging.cloud.azure.spring.grpc.spring;

import org.springframework.context.annotation.Configuration;

@Configuration
public class SpringGrpcLoggingAutoConfiguration {

// error handlers

}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
no.entur.logging.cloud.azure.spring.grpc.spring.SpringGrpcLoggingAutoConfiguration
18 changes: 9 additions & 9 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -7,19 +7,19 @@ plugins {

// Define version variables at root level so they're available everywhere
ext {
springBootVersion = '3.5.9' // https://repo1.maven.org/maven2/org/springframework/boot/spring-boot-dependencies/
springBootVersion = '4.0.2' // https://repo1.maven.org/maven2/org/springframework/boot/spring-boot-dependencies/
// The following versions are managed by Spring Boot BOM (no need to define here):
// junitJupiterVersion, mockitoVersion, slf4jVersion, logbackVersion,
// jacksonVersion, jacksonDatabindVersion, micrometerVersion, janinoVersion,
// servletVersion (jakarta-servlet), annotationApiVersion (jakarta-annotation),
// nettyVersion, jsonPathVersion

// Versions NOT in Spring Boot BOM - we manage these ourselves:
googleTruthVersion = '1.4.5'
logbackLogstashVersion = '8.1'
logbookVersion = '3.12.3'
jacksonSyntaxHighlightVersion = '1.1.1'
logbackLogstashSyntaxHighlightingDecoratorsVersion = '1.1.1'
logbackLogstashVersion = '9.0'
logbookVersion = '4.0.0-RC.1'
jacksonSyntaxHighlightVersion = '2.0.0'
logbackLogstashSyntaxHighlightingDecoratorsVersion = '2.0.0'
commonsIoVersion = '2.21.0'
commonsTextVersion = '1.15.0'
nettyTcnativeBoringsslStaticVersion = '2.0.74.Final'
Expand All @@ -28,7 +28,7 @@ ext {
grpcVersion = '1.78.0'
grpcCommonsVersion = '2.65.0'
grpcProtobufVersion = '4.33.4'
ecosystemGrpcVersion = '3.1.0.RELEASE'
springGrpcVersion = '1.0.2'

jsonAssertVersion = '0.8.0'
}
Expand Down Expand Up @@ -61,7 +61,7 @@ configure(exampleProjects()) {

java {
toolchain {
languageVersion = JavaLanguageVersion.of(17) // Specify desired Java version (e.g., Java 17)
languageVersion = JavaLanguageVersion.of(25) // Specify desired Java version (e.g., Java 17)
}
}

Expand Down Expand Up @@ -92,7 +92,7 @@ configure(jvmProjects()) {

test {
useJUnitPlatform {
includeEngines 'junit-jupiter', 'junit-vintage'
includeEngines 'junit-jupiter'
}
}

Expand Down
4 changes: 2 additions & 2 deletions examples/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Please note:
* For local development, a shortened 'classic' one-line is the default
* To examine log statements in more details use `CompositeConsoleOutputControl.useHumanReadableJsonEncoder()` for JSON output

# Ecosystem gRPC interceptors
# Spring gRPC interceptors
The gRPC interceptor order overview:

## Service configuration
Expand All @@ -30,7 +30,7 @@ The gRPC interceptor order overview:
// Validation
MyValidationServerInterceptor.class,

}, sortInterceptors = true)
})
```

## Interceptor order
Expand Down
Loading