SaaSHub helps you find the best software and product alternatives Learn more →
Top 23 Go Logging Projects
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
gf
GoFrame is a modular, powerful, high-performance and enterprise-class application development framework of Golang. (by gogf)
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
-
stern
⎈ Multi pod and container log tailing for Kubernetes -- Friendly fork of https://github.com/wercker/stern (by stern)
-
seelog
Seelog is a native Go logging library that provides flexible asynchronous dispatching, filtering, and formatting.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
Project mention: Authentication system using Golang and Sveltekit - Initialization and setup | dev.to | 2023-06-02It's some sort of logging system well explained by Alex Edwards in Let’s Go Further. As stated, we could have used logrus or any other popular logging system in Go.
Project mention: Release Radar · April 2024 Edition: Major updates from the open source community | dev.to | 2024-05-03It's like Prometheus, but for logs. Okay it's not really to do with the Norse or Greek gods, instead Loki is a horizontally-scalable, highly-available, multi-tenant log aggregation system inspired by the open source project Prometheus. Built by Grafana Labs, Loki is designed for ease of use. Instead of indexing the contents of the logs, Loki provides a set of labels for each log stream. The latest update includes query acceleration with Bloom filters, native OTel support, Helm charts, and more. Check out the changelog for all the major changes and deprecations.
Project mention: Golang Logging Configuration with Zap: Practical Implementation Tips | dev.to | 2024-05-17
Be aware that there is a performance impact compared to using zerolog directly [0] (my uneducated guess is it is likely due to pointer indirection).
[0]: https://github.com/rs/zerolog/issues/571#issuecomment-166202...
Project mention: Dozzle: Lightweight, web-based Docker log viewer with real-time monitoring | news.ycombinator.com | 2024-01-29
Project mention: ☸️ Kubernetes: From your docker-compose file to a cluster with Kompose | dev.to | 2024-03-09deploy: stage: deploy image: alpine/k8s:1.29.1 variables: NAMESPACE: $CI_COMMIT_REF_SLUG before_script: # init namespace - kubectl config use-context $KUBE_CONTEXT - kubectl create namespace $NAMESPACE || true # download tools - curl --show-error --silent --location https://github.com/stern/stern/releases/download/v1.22.0/stern_1.22.0_linux_amd64.tar.gz | tar zx --directory /usr/bin/ stern && chmod 755 /usr/bin/stern && stern --version - curl --show-error --silent --location https://github.com/kubernetes/kompose/releases/download/v1.32.0/kompose-linux-amd64 -o /usr/local/bin/kompose && chmod a+x /usr/local/bin/kompose && kompose version # show logs asynchronously. Timeout to avoid hanging indefinitely when an error occurs in script section - timeout 1200 stern -n $NAMESPACE "app-" --tail=0 --color=always & # in background, tail new logs if any (current and incoming) pod with this regex as name - timeout 1200 kubectl -n $NAMESPACE get events --watch-only & # in background, tail new events in background script: # first delete CrashLoopBackOff pods, polluting logs - kubectl -n $NAMESPACE delete pod `kubectl -n $NAMESPACE get pods --selector app.kubernetes.io/component=$MODULE | awk '$3 == "CrashLoopBackOff" {print $1}'` || true # now deploying - kompose convert --out k8s/ - kubectl apply -n $NAMESPACE -f k8s/ - echo -e "\e[93;1mWaiting for the new app version to be fully operational...\e[0m" # waiting for successful deployment - kubectl -n $NAMESPACE rollout status deploy/app-db - kubectl -n $NAMESPACE rollout status deploy/app-back - kubectl -n $NAMESPACE rollout status deploy/app-front # on any error before this line, the script will still wait for these threads to complete, so the initial timeout is important. Adding these commands to after_script does not help - pkill stern || true - pkill kubectl || true after_script: # show namespace content - kubectl config use-context $KUBE_CONTEXT - kubectl -n $NAMESPACE get deploy,service,ingress,pod
Learn about how the Logging operator (CNCF Sandbox project) enables multi-tenant scenarios:
Project mention: Siglens: A columnar OLAP db that can execute queries 50x faster than ClickHouse | news.ycombinator.com | 2024-02-20I found their claims exaggerated: https://github.com/siglens/siglens/issues/created_by/alexey-...
Go Logging related posts
-
Golang Logging Configuration with Zap: Practical Implementation Tips
-
Loki 3.0 Released
-
VS Code app logs browser UI
-
☸️ Kubernetes: From your docker-compose file to a cluster with Kompose
-
Logdy – A Web Viewer for Logs
-
Show HN: Capture emails with 5 lines of code
-
Show HN: Kubetail – A private, real-time log viewer for Kubernetes clusters
-
A note from our sponsor - SaaSHub
www.saashub.com | 1 Jun 2024
Index
What are some of the best open-source Logging projects in Go? This list will help you:
Project | Stars | |
---|---|---|
1 | logrus | 24,173 |
2 | loki | 22,416 |
3 | zap | 21,113 |
4 | gf | 10,972 |
5 | zerolog | 9,949 |
6 | go-grpc-middleware | 6,098 |
7 | spew | 5,864 |
8 | lumberjack | 4,658 |
9 | dozzle | 4,495 |
10 | glog | 3,511 |
11 | stern | 2,919 |
12 | tail | 2,675 |
13 | datadog-agent | 2,687 |
14 | log | 2,112 |
15 | kail | 1,939 |
16 | pp | 1,778 |
17 | seelog | 1,638 |
18 | litter | 1,493 |
19 | logging-operator | 1,496 |
20 | log | 1,350 |
21 | logr | 1,202 |
22 | log15 | 1,104 |
23 | SigLens | 1,089 |
Sponsored