forgejo/modules/log
zokki 8cb7c19bf4 feat(log): better parseable and configurable ssh-logs (#9056)
To audit access to our forgejo-instance we currently need to enable debug ssh-logs. It turns out a single log become multiple events in a k8s/container setup. To have our log-collectors properly join these events, we would like to indent them similar to what some stacktraces look like.

This PR would change
```
2025/09/08 07:18:53 ...eb/routing/logger.go:102:func1() [I] Serv Results:
IsWiki: %t
DeployKeyID: %d
KeyID: %d    KeyName: %s
UserName: %s
UserID: %d
OwnerName: %s
RepoName: %s
RepoID: %d
```
to
```
2025/09/08 07:18:53 ...eb/routing/logger.go:102:func1() [I] Serv Results:
    IsWiki: %t
    DeployKeyID: %d
    KeyID: %d    KeyName: %s
    UserName: %s
    UserID: %d
    OwnerName: %s
    RepoName: %s
    RepoID: %d
```

Furthermore to standardize user configuration of ssh-logs I have added `LOGGER_SSH_MODE` . It can be configured like router-logger. By doing so we can change the log-LEVEL to debug for ssh without changing other loggers. This would deprecate `ENABLE_SSH_LOG`.

## Checklist

The [contributor guide](https://forgejo.org/docs/next/contributor/) contains information that will be helpful to first time contributors. There also are a few [conditions for merging Pull Requests in Forgejo repositories](https://codeberg.org/forgejo/governance/src/branch/main/PullRequestsAgreement.md). You are also welcome to join the [Forgejo development chatroom](https://matrix.to/#/#forgejo-development:matrix.org).

### Documentation

- [ ] I created a pull request [to the documentation](https://codeberg.org/forgejo/docs) to explain to Forgejo users how to use this change.
- [x] I did not document these changes and I do not expect someone else to do it.

### Release notes

- [x] I do not want this change to show in the release notes.
- [ ] I want the title to show in the release notes with a link to this pull request.
- [ ] I want the content of the `release-notes/<pull request number>.md` to be be used for the release notes instead of the title.

<!--start release-notes-assistant-->

## Release notes
<!--URL:https://codeberg.org/forgejo/forgejo-->
- Features
  - [PR](https://codeberg.org/forgejo/forgejo/pulls/9056): <!--number 9056 --><!--line 0 --><!--description ZmVhdChsb2cpOiBiZXR0ZXIgcGFyc2VhYmxlIGFuZCBjb25maWd1cmFibGUgc3NoLWxvZ3M=-->feat(log): better parseable and configurable ssh-logs<!--description-->
<!--end release-notes-assistant-->

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/9056
Reviewed-by: Lucas <sclu1034@noreply.codeberg.org>
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
Co-authored-by: zokki <zokki.softwareschmiede@gmail.com>
Co-committed-by: zokki <zokki.softwareschmiede@gmail.com>
2025-09-11 18:59:24 +02:00
..
color.go
color_console.go log: journald integration (#2869) 2024-08-09 07:49:13 +00:00
color_console_other.go Drop SSPI auth support and more Windows files (#7148) 2025-03-08 00:43:41 +00:00
color_router.go
event_format.go chore: remove goroutine PID logging (#8851) 2025-08-10 22:54:29 +02:00
event_format_test.go chore: remove goroutine PID logging (#8851) 2025-08-10 22:54:29 +02:00
event_writer.go feat: add a EXCLUSION to the logger (#8212) 2025-07-04 00:08:23 +02:00
event_writer_base.go feat: add a EXCLUSION to the logger (#8212) 2025-07-04 00:08:23 +02:00
event_writer_buffer.go feat: add a buffer writer to the logger, for internal use (#6551) 2025-01-13 13:40:24 +00:00
event_writer_buffer_test.go feat: add a EXCLUSION to the logger (#8212) 2025-07-04 00:08:23 +02:00
event_writer_conn.go
event_writer_conn_test.go Update module github.com/golangci/golangci-lint/cmd/golangci-lint to v1.64.6 (forgejo) (#7118) 2025-03-04 21:38:35 +00:00
event_writer_console.go
event_writer_file.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
flags.go chore: remove goroutine PID logging (#8851) 2025-08-10 22:54:29 +02:00
flags_test.go chore: remove goroutine PID logging (#8851) 2025-08-10 22:54:29 +02:00
init.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
level.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
level_test.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
logger.go
logger_global.go
logger_impl.go chore: remove goroutine PID logging (#8851) 2025-08-10 22:54:29 +02:00
logger_impl_test.go fix: correct logging if caller has generics 2025-03-05 00:10:46 +01:00
logger_test.go feat: add a EXCLUSION to the logger (#8212) 2025-07-04 00:08:23 +02:00
manager.go
manager_test.go
misc.go
stack.go feat(log): better parseable and configurable ssh-logs (#9056) 2025-09-11 18:59:24 +02:00