141 lines
3.6 KiB
Markdown
141 lines
3.6 KiB
Markdown
# Micronaut Logging support
|
|
|
|
## Features
|
|
|
|
### Available Appender
|
|
|
|
* console format
|
|
* Stackdriver format (with support for error reporting)
|
|
|
|
### Set log level based on MDC values
|
|
|
|
Configuration:
|
|
* *enabled*: enable MDC filter (`true` is default)
|
|
* *key*: MDC key, is optional (will use name instead, see example `user` below)
|
|
* *level*: log level to use (`TRACE` is default)
|
|
* *loggers*: passlist of logger names, matches all loggers if empty
|
|
* *values*: values for matching MDC key, matches all values if empty
|
|
|
|
Example for setting different values for different values/logger:
|
|
```
|
|
logger:
|
|
levels:
|
|
io.kokuwa: INFO
|
|
mdc:
|
|
gateway-debug:
|
|
key: gateway
|
|
level: DEBUG
|
|
loggers:
|
|
- io.kokuwa
|
|
values:
|
|
- 6a1bae7f-eb6c-4c81-af9d-dc15396584e2
|
|
- fb3318f1-2c73-48e9-acd4-a2be3c9f9256
|
|
gateway-trace:
|
|
key: gateway
|
|
level: TRACE
|
|
loggers:
|
|
- io.kokuwa
|
|
- io.micronaut
|
|
values:
|
|
- 257802b2-22fe-4dcc-bb99-c1db2a47861f
|
|
```
|
|
|
|
Example for omiting level and key:
|
|
```
|
|
logger:
|
|
levels:
|
|
io.kokuwa: INFO
|
|
mdc:
|
|
gateway:
|
|
loggers:
|
|
- io.kokuwa
|
|
values:
|
|
- 257802b2-22fe-4dcc-bb99-c1db2a47861f
|
|
- 0a44738b-0c3a-4798-8210-2495485f10b2
|
|
```
|
|
|
|
Example for minimal configuration:
|
|
```
|
|
logger:
|
|
levels:
|
|
io.kokuwa: INFO
|
|
mdc:
|
|
user: {}
|
|
```
|
|
|
|
### Set log level based on HTTP request header
|
|
|
|
Configuration for server filter (prefixed with *logger.request.filter*):
|
|
* *enabled*: enable HTTP server filter (`true` is default)
|
|
* *order*: order for [Ordered](https://github.com/micronaut-projects/micronaut-core/blob/master/core/src/main/java/io/micronaut/core/order/Ordered.java) (highest is default)
|
|
* *path*: filter path (`/**` is default)
|
|
* *header*: name of HTTP header (`x-log-level` is default)
|
|
|
|
Configuration for client filter for propagation (prefixed with *logger.request.propagation*):
|
|
* *enabled*: enable HTTP client filter (`true` is default)
|
|
* *order*: order for [Ordered](https://github.com/micronaut-projects/micronaut-core/blob/master/core/src/main/java/io/micronaut/core/order/Ordered.java) (tracing is default)
|
|
* *path*: filter path (`/**` is default)
|
|
* *header*: name of HTTP header (server header is default)
|
|
|
|
Example with default configuration:
|
|
```
|
|
logger:
|
|
request:
|
|
filter:
|
|
enabled: true
|
|
order: -2147483648
|
|
path: /**
|
|
header: x-log-level
|
|
propagation:
|
|
enabled: true
|
|
order: 19000
|
|
path: /**
|
|
header: ${logger.request.header.header-name}
|
|
```
|
|
|
|
### Add principal for request to MDC
|
|
|
|
Configuration:
|
|
* *enabled*: enable HTTP principal filter (`true` is default)
|
|
* *order*: order for [Ordered](https://github.com/micronaut-projects/micronaut-core/blob/master/core/src/main/java/io/micronaut/core/order/Ordered.java) ([ServerFilterPhase.SECURITY.after()](https://github.com/micronaut-projects/micronaut-core/blob/v2.0.1/http/src/main/java/io/micronaut/http/filter/ServerFilterPhase.java#L54) is default)
|
|
* *path*: filter path (`/**` is default)
|
|
* *key*: name of MDC header (`principal` is default)
|
|
|
|
Example with default configuration:
|
|
```
|
|
logger:
|
|
request:
|
|
principal:
|
|
enabled: true
|
|
order: 39250
|
|
path: /**
|
|
key: principal
|
|
```
|
|
|
|
## Build & Release
|
|
|
|
### Dependency updates
|
|
|
|
Display dependency updates:
|
|
```
|
|
mvn versions:display-property-updates -U
|
|
```
|
|
|
|
Update dependencies:
|
|
```
|
|
mvn versions:update-properties
|
|
```
|
|
|
|
### Release locally
|
|
|
|
Run:
|
|
```
|
|
mvn release:prepare release:perform release:clean -B
|
|
```
|
|
|
|
## Open Topics
|
|
|
|
* configure mdc on refresh event
|
|
* add stackdriver per configuration
|
|
* add fluent per configuration
|
|
* read **serviceName** and **serviceVersion** from yaml
|