Add config options to add authentication attributes as mdc.
This commit is contained in:
parent
a350698f52
commit
7ad1ee0add
32 changed files with 964 additions and 541 deletions
35
docs/features/http_log_level.md
Normal file
35
docs/features/http_log_level.md
Normal file
|
@ -0,0 +1,35 @@
|
|||
# Set log level based on HTTP request header
|
||||
|
||||
With this features it is possible to set the log level while processing a request by adding the http header `x-log-level` with value `TRACE`. This log level is propagated to HTTP client requests.
|
||||
|
||||
## Properties
|
||||
|
||||
Property | Description | Default
|
||||
-------- | ----------- | -------
|
||||
`logger.http.level.enabled` | filter enabled? | `true`
|
||||
`logger.http.level.path` | filter path | `/**`
|
||||
`logger.http.level.order` | order for [Ordered](https://github.com/micronaut-projects/micronaut-core/blob/v3.2.0/core/src/main/java/io/micronaut/core/order/Ordered.java) | [ServerFilterPhase.FIRST.before()](https://github.com/micronaut-projects/micronaut-core/blob/v3.2.0/http/src/main/java/io/micronaut/http/filter/ServerFilterPhase.java#L34)
|
||||
`logger.http.level.header` | name of HTTP header | `x-log-level`
|
||||
`logger.http.level.propagation.enabled` | propagation enabled? | `true`
|
||||
`logger.http.level.propagation.path` | propagation path | `/**`
|
||||
`logger.http.level.propagation.order` | order for [Ordered](https://github.com/micronaut-projects/micronaut-core/blob/v3.2.0/core/src/main/java/io/micronaut/core/order/Ordered.java) | [Order.HIGHEST_PRECEDENCE](https://github.com/micronaut-projects/micronaut-core/blob/v3.2.0/core/src/main/java/io/micronaut/core/order/Ordered.java#L30)
|
||||
`logger.http.level.propagation.header` | name of HTTP header | see `logger.http.level.header`
|
||||
|
||||
## Examples
|
||||
|
||||
Default configuration:
|
||||
|
||||
```yaml
|
||||
logger:
|
||||
http:
|
||||
level:
|
||||
enabled: true
|
||||
order: -1000
|
||||
path: /**
|
||||
header: x-log-level
|
||||
propagation:
|
||||
enabled: true
|
||||
order: 2147483648
|
||||
path: /**
|
||||
header: ${logger.http.level.header}
|
||||
```
|
29
docs/features/http_mdc_authentication.md
Normal file
29
docs/features/http_mdc_authentication.md
Normal file
|
@ -0,0 +1,29 @@
|
|||
# Add authentication information to MDC
|
||||
|
||||
This only applies to HTTP requests with successful security authentication.
|
||||
|
||||
## Properties
|
||||
|
||||
Property | Description | Default
|
||||
-------- | ----------- | -------
|
||||
`logger.http.authentication.enabled` | filter enabled? | `true`
|
||||
`logger.http.authentication.path` | filter path | `/**`
|
||||
`logger.http.authentication.order` | order for [Ordered](https://github.com/micronaut-projects/micronaut-core/blob/v3.2.0/core/src/main/java/io/micronaut/core/order/Ordered.java) | [ServerFilterPhase.SECURITY.after()](https://github.com/micronaut-projects/micronaut-core/blob/v3.2.0/http/src/main/java/io/micronaut/http/filter/ServerFilterPhase.java#L54)
|
||||
`logger.http.authentication.prefix` | prefix to MDC key | ``
|
||||
`logger.http.authentication.name` | MDC key of authentication name | `principal`
|
||||
`logger.http.authentication.attributes` | authentication attributes to add to MDC, | `[]`
|
||||
|
||||
## Examples
|
||||
|
||||
Configuration for adding some jwt claims:
|
||||
|
||||
```yaml
|
||||
logger:
|
||||
http:
|
||||
authentication:
|
||||
prefix: jwt.
|
||||
name: sub
|
||||
attributes:
|
||||
- aud
|
||||
- azp
|
||||
```
|
28
docs/features/http_mdc_headers.md
Normal file
28
docs/features/http_mdc_headers.md
Normal file
|
@ -0,0 +1,28 @@
|
|||
# Add HTTP headers to MDC
|
||||
|
||||
## Properties
|
||||
|
||||
Property | Description | Default
|
||||
-------- | ----------- | -------
|
||||
`logger.http.headers.enabled` | filter enabled? | `true`
|
||||
`logger.http.headers.path` | filter path | `/**`
|
||||
`logger.http.headers.order` | order for [Ordered](https://github.com/micronaut-projects/micronaut-core/blob/v3.2.0/core/src/main/java/io/micronaut/core/order/Ordered.java) | [ServerFilterPhase.FIRST.before()](https://github.com/micronaut-projects/micronaut-core/blob/v3.2.0/http/src/main/java/io/micronaut/http/filter/ServerFilterPhase.java#L34)
|
||||
`logger.http.headers.prefix` | prefix to MDC key | ``
|
||||
`logger.http.headers.names` | http header names to add to MDC | `[]`
|
||||
|
||||
## Examples
|
||||
|
||||
Configuration for b3-propagation:
|
||||
|
||||
```yaml
|
||||
logger:
|
||||
http:
|
||||
headers:
|
||||
prefix: header.
|
||||
names:
|
||||
- x-request-id
|
||||
- x-b3-traceId
|
||||
- x-b3-parentspanid
|
||||
- x-b3-spanid
|
||||
- x-b3-sampled
|
||||
```
|
16
docs/features/logback_appender.md
Normal file
16
docs/features/logback_appender.md
Normal file
|
@ -0,0 +1,16 @@
|
|||
# Appender
|
||||
|
||||
## Available Appender
|
||||
|
||||
* console with jansi for developers
|
||||
* gcp logging format (with support for error reporting)
|
||||
* json
|
||||
|
||||
## AutoSelect appender
|
||||
|
||||
1. if `LOGBACK_APPENDER` is set this appender will be used
|
||||
2. if GCP is detected gcp appender will be used
|
||||
3. if Kubernetes is detected json appender will be used
|
||||
4. console appender else
|
||||
|
||||
*IMPORTENT*: only works without custom `logback.xml`
|
18
docs/features/logback_default.md
Normal file
18
docs/features/logback_default.md
Normal file
|
@ -0,0 +1,18 @@
|
|||
# Add default logback.xml
|
||||
|
||||
If no `logback.xml` by user is provided a default [logback.xml](../../src/main/resources/io/kokuwa/logback/logback-default.xml) is loaded. Otherwise use custom [logback.xml](../../src/main/resources/io/kokuwa/logback/logback-example.xml):
|
||||
|
||||
```xml
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<configuration debug="true" scan="false">
|
||||
|
||||
<include resource="io/kokuwa/logback/base.xml" />
|
||||
|
||||
<logger name="io.micronaut.logging.PropertiesLoggingLevelsConfigurer" levels="WARN" />
|
||||
|
||||
<root level="INFO">
|
||||
<appender-ref ref="${LOGBACK_APPENDER:-CONSOLE}" />
|
||||
</root>
|
||||
|
||||
</configuration>
|
||||
```
|
66
docs/features/logback_mdc_level.md
Normal file
66
docs/features/logback_mdc_level.md
Normal file
|
@ -0,0 +1,66 @@
|
|||
# Set log level based on MDC values
|
||||
|
||||
This can be used to change the log level based on MDC valus. E.g. change log levels for specific users/services etc.
|
||||
|
||||
## Properties
|
||||
|
||||
Property | Description | Default
|
||||
-------- | ----------- | -------
|
||||
`logger.mdc.enabled` | MDC enabled? | `true`
|
||||
`logger.mdc.<key>` | MDC key to use |
|
||||
`logger.mdc.<key>.key` | MDC key override, see complex example below for usage | `<key>`
|
||||
`logger.mdc.<key>.level` | log level to use | `TRACE`
|
||||
`logger.mdc.<key>.loggers` | passlist of logger names, matches all loggers if empty | `[]`
|
||||
`logger.mdc.<key>.values` | values for matching MDC key, matches all values if empty | `[]`
|
||||
|
||||
## Examples
|
||||
|
||||
Minimal configuration that logs everything with `TRACE` if MDC `principal` is present:
|
||||
|
||||
```yaml
|
||||
logger:
|
||||
levels:
|
||||
io.kokuwa: INFO
|
||||
mdc:
|
||||
principal: {}
|
||||
```
|
||||
|
||||
Configuration that logs everything with `TRACE` for logger `io.kokuwa` if MDC `gateway` matches one value:
|
||||
|
||||
```yaml
|
||||
logger:
|
||||
levels:
|
||||
io.kokuwa: INFO
|
||||
mdc:
|
||||
gateway:
|
||||
loggers:
|
||||
- io.kokuwa
|
||||
values:
|
||||
- 257802b2-22fe-4dcc-bb99-c1db2a47861f
|
||||
- 0a44738b-0c3a-4798-8210-2495485f10b2
|
||||
```
|
||||
|
||||
Complex example with setting different values for different values/logger:
|
||||
|
||||
```yaml
|
||||
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
|
||||
```
|
Loading…
Add table
Add a link
Reference in a new issue