diff options
Diffstat (limited to 'examples')
14 files changed, 275 insertions, 0 deletions
| diff --git a/examples/quarkus/pom.xml b/examples/quarkus/pom.xml new file mode 100644 index 0000000..a26f782 --- /dev/null +++ b/examples/quarkus/pom.xml @@ -0,0 +1,44 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" +    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + +  <modelVersion>4.0.0</modelVersion> + +  <parent> +    <groupId>eu.mulk.quarkus-googlecloud-jsonlogging</groupId> +    <artifactId>quarkus-googlecloud-jsonlogging-parent</artifactId> +    <version>3.1.4-SNAPSHOT</version> +  </parent> + +  <artifactId>quarkus-googlecloud-jsonlogging-quarkus-example</artifactId> +  <name>Quarkus Google Cloud JSON Logging Extension - Quarkus Example</name> + +  <dependencies> +    <dependency> +      <groupId>io.quarkus</groupId> +      <artifactId>quarkus-resteasy</artifactId> +    </dependency> +    <dependency> +      <groupId>eu.mulk.quarkus-googlecloud-jsonlogging</groupId> +      <artifactId>quarkus-googlecloud-jsonlogging</artifactId> +      <version>${project.version}</version> +    </dependency> +  </dependencies> + +  <build> +    <plugins> +      <plugin> +        <groupId>io.quarkus</groupId> +        <artifactId>quarkus-maven-plugin</artifactId> +        <executions> +          <execution> +            <goals> +              <goal>build</goal> +            </goals> +          </execution> +        </executions> +      </plugin> +    </plugins> +  </build> + +</project> diff --git a/examples/quarkus/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/example/RandomNumberParameterProvider.java b/examples/quarkus/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/example/RandomNumberParameterProvider.java new file mode 100644 index 0000000..7e4158c --- /dev/null +++ b/examples/quarkus/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/example/RandomNumberParameterProvider.java @@ -0,0 +1,14 @@ +package eu.mulk.quarkus.googlecloud.jsonlogging.example; + +import eu.mulk.quarkus.googlecloud.jsonlogging.KeyValueParameter; +import eu.mulk.quarkus.googlecloud.jsonlogging.StructuredParameter; +import eu.mulk.quarkus.googlecloud.jsonlogging.StructuredParameterProvider; +import java.util.concurrent.ThreadLocalRandom; + +public class RandomNumberParameterProvider implements StructuredParameterProvider { + +  @Override +  public StructuredParameter getParameter() { +    return KeyValueParameter.of("randomNumber", ThreadLocalRandom.current().nextInt()); +  } +} diff --git a/examples/quarkus/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/example/RootResource.java b/examples/quarkus/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/example/RootResource.java new file mode 100644 index 0000000..90cd587 --- /dev/null +++ b/examples/quarkus/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/example/RootResource.java @@ -0,0 +1,37 @@ +package eu.mulk.quarkus.googlecloud.jsonlogging.example; + +import eu.mulk.quarkus.googlecloud.jsonlogging.KeyValueParameter; +import eu.mulk.quarkus.googlecloud.jsonlogging.Label; +import javax.annotation.PostConstruct; +import javax.enterprise.context.ApplicationScoped; +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import org.jboss.logging.Logger; +import org.jboss.logging.MDC; + +@Produces("text/plain") +@Path("/") +@ApplicationScoped +public class RootResource { + +  static final Logger log = Logger.getLogger(RootResource.class); + +  @PostConstruct +  public void init() { +    log.warn("Hey!"); +  } + +  @GET +  public String hello() { +    MDC.put("requestMethod", "GET"); +    log.infof( +        "Hello %s.", +        "Mulkiatsch", +        KeyValueParameter.of("a", "b"), +        Label.of("app", "foo"), +        KeyValueParameter.of("version", 10)); +    throw new IllegalStateException(); +    // return "ok"; +  } +} diff --git a/examples/quarkus/src/main/resources/META-INF/services/eu.mulk.quarkus.googlecloud.jsonlogging.StructuredParameterProvider b/examples/quarkus/src/main/resources/META-INF/services/eu.mulk.quarkus.googlecloud.jsonlogging.StructuredParameterProvider new file mode 100644 index 0000000..c0017e6 --- /dev/null +++ b/examples/quarkus/src/main/resources/META-INF/services/eu.mulk.quarkus.googlecloud.jsonlogging.StructuredParameterProvider @@ -0,0 +1 @@ +eu.mulk.quarkus.googlecloud.jsonlogging.example.RandomNumberParameterProvider diff --git a/examples/quarkus/src/main/resources/application.properties b/examples/quarkus/src/main/resources/application.properties new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/examples/quarkus/src/main/resources/application.properties diff --git a/examples/spring-boot/pom.xml b/examples/spring-boot/pom.xml new file mode 100644 index 0000000..29e17d3 --- /dev/null +++ b/examples/spring-boot/pom.xml @@ -0,0 +1,93 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project +  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" +  xmlns="http://maven.apache.org/POM/4.0.0" +  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + +  <modelVersion>4.0.0</modelVersion> + +  <parent> +    <groupId>eu.mulk.quarkus-googlecloud-jsonlogging</groupId> +    <artifactId>quarkus-googlecloud-jsonlogging-parent</artifactId> +    <version>3.1.4-SNAPSHOT</version> +  </parent> + +  <artifactId>quarkus-googlecloud-jsonlogging-spring-boot-example</artifactId> +  <name>Quarkus Google Cloud JSON Logging Extension - Spring Boot Example</name> + +  <dependencyManagement> +    <dependencies> +      <dependency> +        <groupId>org.springframework.boot</groupId> +        <artifactId>spring-boot-dependencies</artifactId> +        <version>2.6.2</version> +        <type>pom</type> +        <scope>import</scope> +      </dependency> +    </dependencies> +  </dependencyManagement> + +  <dependencies> +    <dependency> +      <groupId>org.jboss.slf4j</groupId> +      <artifactId>slf4j-jboss-logmanager</artifactId> +      <version>1.1.0.Final</version> +    </dependency> +    <!-- *** optional *** +    <dependency> +      <groupId>org.jboss.logmanager</groupId> +      <artifactId>log4j2-jboss-logmanager</artifactId> +      <version>1.0.0.Final</version> +    </dependency> +    --> +    <!-- *** optional *** +    <dependency> +      <groupId>org.jboss.logmanager</groupId> +      <artifactId>log4j-jboss-logmanager</artifactId> +      <version>1.2.2.Final</version> +    </dependency> +    --> +    <!-- *** optional *** +    <dependency> +      <groupId>org.slf4j</groupId> +      <artifactId>jcl-over-slf4j</artifactId> +    </dependency> +    --> +    <dependency> +      <groupId>org.springframework.boot</groupId> +      <artifactId>spring-boot-starter-web</artifactId> +    </dependency> +    <dependency> +      <groupId>org.springframework.boot</groupId> +      <artifactId>spring-boot-starter</artifactId> +      <exclusions> +        <exclusion> +          <groupId>ch.qos.logback</groupId> +          <artifactId>logback-classic</artifactId> +        </exclusion> +        <!-- +        <exclusion> +          <groupId>org.springframework.boot</groupId> +          <artifactId>spring-boot-starter-logging</artifactId> +        </exclusion> +        --> +      </exclusions> +    </dependency> +    <dependency> +      <groupId>eu.mulk.quarkus-googlecloud-jsonlogging</groupId> +      <artifactId>quarkus-googlecloud-jsonlogging-core</artifactId> +      <version>${project.version}</version> +    </dependency> +  </dependencies> + +  <build> +    <plugins> +      <plugin> +        <groupId>org.springframework.boot</groupId> +        <artifactId>spring-boot-maven-plugin</artifactId> +        <version>2.6.2</version> +      </plugin> +    </plugins> +  </build> + +</project> diff --git a/examples/spring-boot/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/example/Application.java b/examples/spring-boot/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/example/Application.java new file mode 100644 index 0000000..d003b3f --- /dev/null +++ b/examples/spring-boot/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/example/Application.java @@ -0,0 +1,12 @@ +package eu.mulk.quarkus.googlecloud.jsonlogging.example; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class Application { + +  public static void main(String[] args) { +    SpringApplication.run(Application.class, args); +  } +} diff --git a/examples/spring-boot/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/example/ApplicationLoggingSystem.java b/examples/spring-boot/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/example/ApplicationLoggingSystem.java new file mode 100644 index 0000000..4050b99 --- /dev/null +++ b/examples/spring-boot/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/example/ApplicationLoggingSystem.java @@ -0,0 +1,22 @@ +package eu.mulk.quarkus.googlecloud.jsonlogging.example; + +import org.springframework.boot.logging.LogFile; +import org.springframework.boot.logging.LoggingInitializationContext; +import org.springframework.boot.logging.Slf4JLoggingSystem; + +public class ApplicationLoggingSystem extends Slf4JLoggingSystem { + +  public ApplicationLoggingSystem(ClassLoader classLoader) { +    super(classLoader); +  } + +  @Override +  protected String[] getStandardConfigLocations() { +    return new String[0]; +  } + +  @Override +  protected void loadDefaults(LoggingInitializationContext initializationContext, LogFile logFile) { +    /* no configuration necessary */ +  } +} diff --git a/examples/spring-boot/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/example/RandomNumberParameterProvider.java b/examples/spring-boot/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/example/RandomNumberParameterProvider.java new file mode 100644 index 0000000..7e4158c --- /dev/null +++ b/examples/spring-boot/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/example/RandomNumberParameterProvider.java @@ -0,0 +1,14 @@ +package eu.mulk.quarkus.googlecloud.jsonlogging.example; + +import eu.mulk.quarkus.googlecloud.jsonlogging.KeyValueParameter; +import eu.mulk.quarkus.googlecloud.jsonlogging.StructuredParameter; +import eu.mulk.quarkus.googlecloud.jsonlogging.StructuredParameterProvider; +import java.util.concurrent.ThreadLocalRandom; + +public class RandomNumberParameterProvider implements StructuredParameterProvider { + +  @Override +  public StructuredParameter getParameter() { +    return KeyValueParameter.of("randomNumber", ThreadLocalRandom.current().nextInt()); +  } +} diff --git a/examples/spring-boot/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/example/RootResource.java b/examples/spring-boot/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/example/RootResource.java new file mode 100644 index 0000000..b3197fd --- /dev/null +++ b/examples/spring-boot/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/example/RootResource.java @@ -0,0 +1,33 @@ +package eu.mulk.quarkus.googlecloud.jsonlogging.example; + +import eu.mulk.quarkus.googlecloud.jsonlogging.KeyValueParameter; +import eu.mulk.quarkus.googlecloud.jsonlogging.Label; +import javax.annotation.PostConstruct; +import org.jboss.logging.Logger; +import org.jboss.logging.MDC; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController("/") +public class RootResource { + +  static final Logger log = Logger.getLogger(RootResource.class); + +  @PostConstruct +  public void init() { +    log.warn("Hey!"); +  } + +  @GetMapping(produces = "text/plain") +  public String hello() { +    MDC.put("requestMethod", "GET"); +    log.infof( +        "Hello %s.", +        "Mulkiatsch", +        KeyValueParameter.of("a", "b"), +        Label.of("app", "foo"), +        KeyValueParameter.of("version", 10)); +    throw new IllegalStateException(); +    // return "ok"; +  } +} diff --git a/examples/spring-boot/src/main/resources/META-INF/services/eu.mulk.quarkus.googlecloud.jsonlogging.StructuredParameterProvider b/examples/spring-boot/src/main/resources/META-INF/services/eu.mulk.quarkus.googlecloud.jsonlogging.StructuredParameterProvider new file mode 100644 index 0000000..c0017e6 --- /dev/null +++ b/examples/spring-boot/src/main/resources/META-INF/services/eu.mulk.quarkus.googlecloud.jsonlogging.StructuredParameterProvider @@ -0,0 +1 @@ +eu.mulk.quarkus.googlecloud.jsonlogging.example.RandomNumberParameterProvider diff --git a/examples/spring-boot/src/main/resources/META-INF/services/org.jboss.logmanager.EmbeddedConfigurator b/examples/spring-boot/src/main/resources/META-INF/services/org.jboss.logmanager.EmbeddedConfigurator new file mode 100644 index 0000000..6d937e5 --- /dev/null +++ b/examples/spring-boot/src/main/resources/META-INF/services/org.jboss.logmanager.EmbeddedConfigurator @@ -0,0 +1 @@ +eu.mulk.quarkus.googlecloud.jsonlogging.logmanager.DefaultEmbeddedConfigurator diff --git a/examples/spring-boot/src/main/resources/application.properties b/examples/spring-boot/src/main/resources/application.properties new file mode 100644 index 0000000..c87d7c3 --- /dev/null +++ b/examples/spring-boot/src/main/resources/application.properties @@ -0,0 +1 @@ +logging.config = classpath:logging.properties diff --git a/examples/spring-boot/src/main/resources/logging.properties b/examples/spring-boot/src/main/resources/logging.properties new file mode 100644 index 0000000..e80e0c6 --- /dev/null +++ b/examples/spring-boot/src/main/resources/logging.properties @@ -0,0 +1,2 @@ +handlers = eu.mulk.quarkus.googlecloud.jsonlogging.logmanager.DefaultConsoleHandler +.level = INFO | 
