| 1 | # Test logfmt pattern parsing |
| 2 | pattern: logfmt |
| 3 | |
| 4 | inject: |
| 5 | - key: SOURCE |
| 6 | value: "logfmt-parser" |
| 7 | |
| 8 | rewrite: |
| 9 | # Convert level to uppercase |
| 10 | - key: LEVEL |
| 11 | match: "(.+)" |
| 12 | value: "${1^^}" # Bash-style uppercase - may not work |
| 13 | |
| 14 | # Alternative uppercase conversion |
| 15 | - key: LEVEL_UPPER |
| 16 | value: "${LEVEL}" |
| 17 | inject: yes |
| 18 | |
| 19 | # Extract duration and convert to ms |
| 20 | - key: DURATION |
| 21 | match: "(\\d+)ms" |
| 22 | value: "${1}" |
| 23 | |
| 24 | - key: DURATION |
| 25 | match: "(\\d+)s" |
| 26 | value: "${1}000" |
| 27 | |
| 28 | # Build structured message |
| 29 | - key: STRUCTURED_MSG |
| 30 | value: "method=${METHOD} path=${PATH} status=${STATUS} duration=${DURATION}ms" |
| 31 | inject: yes |
| 32 | |
| 33 | rename: |
| 34 | - old_key: MSG |
| 35 | new_key: MESSAGE |
| 36 | - old_key: ERR |
| 37 | new_key: ERROR |
| 38 | - old_key: REQ_ID |
| 39 | new_key: REQUEST_ID |
| 40 | |
| 41 | filter: |
| 42 | include: "MESSAGE|ERROR|LEVEL|STATUS|METHOD|PATH|DURATION|STRUCTURED_MSG|LEVEL_UPPER|SOURCE|REQUEST_ID" |
| 43 | exclude: "password|token|secret" |