Installation and administration guide
Examples
Custom Logger

Example chart configuration

This section provides an example of a Helm Chart configuration for a Java application that utilizes a custom logger configuration stored in a ConfigMap. The example demonstrates how to properly define and attach the logger configuration file to the application, enabling centralized logging management without modifying the application code.

  somTemplates:
    somService:
      global:
        name: "som-service-audit-log"
        secrets:
          defaultSecret:
            create: fasle
          existingSecrets:
            - name: dev-app-secret
            - name: dev-mongodb-secret
        configMap:
          extraConfigMaps:
            - name: "custom-logger-config"
              fileName: "log4j2-json.xml"
              isLoggerConfig: true
      env:
      - name: _JAVA_OPTIONS
        value: "-XX:MaxRAMPercentage=60 -XX:+ExitOnOutOfMemoryError"
      - name: SERVICE_NAME
        value: "som-service-audit-log"
      resources:
        limits:
          cpu: 1000m
          memory: 512Mi
        requests:
          cpu: 500m
          memory: 512Mi
 
  apiVersion: v1
  kind: ConfigMap
  metadata:
  name: custom-logger-config
  data:
  log4j2-json.xml: |
      <?xml version="1.0" encoding="UTF-8"?>
      <Configuration status="WARN" monitorInterval="30">
          <Properties>
              <Property name="LOG_PATTERN">%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}} %highlight{${LOG_LEVEL_PATTERN:-%5p}}{FATAL=red blink, ERROR=red, WARN=yellow bold, INFO=green, DEBUG=green bold, TRACE=blue} %style{${sys:PID}}{magenta} [%15.15t][$${ctx:orderId}] %style{%-40.40C{1.}}{cyan} : %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}</Property>
              <Property name="SERVICE_NAME">${env:SERVICE_NAME:-default-service}</Property>
          </Properties>
 
          <Appenders>
              <Console name="Console" target="SYSTEM_OUT" follow="true">
                  <PatternLayout>
                      <Pattern>
                          {"@timestamp":"%d{yyyy-MM-dd'T'HH:mm:ss.SSSZ}",
                          "level":"%p",
                          "message":"%m",
                          "ecs.version":"1.2.0",
                          "service.name":"${SERVICE_NAME}",
                          "event.dataset":"${SERVICE_NAME}",
                          "process.thread.name":"%t",
                          "logger":"%c"}%n
                      </Pattern>
                  </PatternLayout>
              </Console>
          </Appenders>
 
          <Loggers>
              <Root level="info">
                  <AppenderRef ref="Console"/>
              </Root>
              <Logger level="OFF" name="com.sciamus.som" additivity="false">
              </Logger>
 
          </Loggers>
      </Configuration>