{"id":24995960,"url":"https://github.com/fclairamb/go-log","last_synced_at":"2025-04-12T04:33:58.969Z","repository":{"id":37308343,"uuid":"387031147","full_name":"fclairamb/go-log","owner":"fclairamb","description":null,"archived":false,"fork":false,"pushed_at":"2025-03-31T15:22:45.000Z","size":95,"stargazers_count":4,"open_issues_count":3,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-10T05:48:22.675Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fclairamb.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"license.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-07-17T20:26:08.000Z","updated_at":"2025-03-22T03:01:15.000Z","dependencies_parsed_at":"2023-02-15T00:30:59.827Z","dependency_job_id":"79727417-63fb-448b-af2a-cf1abb7c601e","html_url":"https://github.com/fclairamb/go-log","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fclairamb%2Fgo-log","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fclairamb%2Fgo-log/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fclairamb%2Fgo-log/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fclairamb%2Fgo-log/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fclairamb","download_url":"https://codeload.github.com/fclairamb/go-log/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248517565,"owners_count":21117480,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-02-04T15:53:06.868Z","updated_at":"2025-04-12T04:33:58.904Z","avatar_url":"https://github.com/fclairamb.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Tiny logging API\n\nThis library provides a basic API to be integrated with any logging framework. It\nallows to use logging in your libraries without enforcing a particular logging\nframework.\n\nHere is it:\n```golang\n// Logger interface\ntype Logger interface {\n\n\t// Debug logging: Every details\n\tDebug(event string, keyvals ...interface{})\n\n\t// Info logging: Core events\n\tInfo(event string, keyvals ...interface{})\n\n\t// Warning logging: Anything out of the ordinary but non-life threatening\n\tWarn(event string, keyvals ...interface{})\n\n\t// Error logging: Major issue\n\tError(event string, keyvals ...interface{})\n\n\t// Panic logging: We want to crash\n\tPanic(event string, keyvals ...interface{})\n\n\t// Context extending interface\n\tWith(keyvals ...interface{}) Logger\n}\n```\n\nIt was designed for the [ftpserverlib](https://github.com/fclairamb/ftpserverlib).\n\n## Compatible logging frameworks\n\n### [slog](https://pkg.go.dev/log/slog)\n```golang\nimport (\n\tadapter \"github.com/fclairamb/go-log/slog\"\n)\n\nfunc main() {\n\tlogger := adapter.NewWrap(slog.New())\n\n\tlogger.Info(\"Hello world !\")\n}\n```\n\n### [go-kit/log](https://github.com/go-kit/log)\n```golang\nimport (\n\t\"os\"\n\n\tgklog \"github.com/go-kit/log\"\n\tadapter \"github.com/fclairamb/go-log/gokit\"\n)\n\nfunc main() {\n\tgkLogger := gklog.NewLogfmtLogger(gklog.NewSyncWriter(os.Stdout))\n\tlogger := adapter.NewWrap(gkLogger)\n\n\tlogger.Info(\"Hello world !\")\n}\n```\n\n### [log15](https://github.com/inconshreveable/log15)\n```golang\nimport (\n\t\"github.com/inconshreveable/log15\"\n\tadapter \"github.com/fclairamb/go-log/log15\"\n)\n\nfunc main() {\n\tlog15Logger := log15.New()\n\tlogger := adapter.NewWrap(log15Logger)\n\n\tlogger.Info(\"Hello world !\")\n}\n```\n\n### [zap](https://github.com/uber-go/zap)\n```golang\nimport (\n\t\"go.uber.org/zap\"\n\tadapter \"github.com/fclairamb/go-log/zap\"\n)\n\nfunc main() {\n\tinnerLogger, _ := zap.NewProduction()\n\tlogger := adapter.NewWrap(innerLogger.Sugar())\n\n\tlogger.Info(\"Hello world !\")\n}\n```\n\n### [zerolog](https://github.com/rs/zerolog/)\n```golang\nimport (\n\tzerolog \"github.com/rs/zerolog/log\"\n\tadapter \"github.com/fclairamb/go-log/zerolog\"\n)\n\nfunc main() {\n\tlogger := adapter.NewWrap(\u0026zerolog.Logger)\n\n\tlogger.Info(\"Hello world !\")\n}\n\n```\n\n### [logrus](https://github.com/sirupsen/logrus) (not recommended)\n```golang\nimport (\n\t\"github.com/sirupsen/logrus\" //nolint: depguard\n\tadapter \"github.com/fclairamb/go-log/logrus\"\n)\n\nfunc main() {\n\tlogrusLogger := logrus.New()\n\tlogger := adapter.NewWrap(logrusLogger)\n\n\tlogger.Info(\"Hello world !\")\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffclairamb%2Fgo-log","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffclairamb%2Fgo-log","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffclairamb%2Fgo-log/lists"}