{"id":18000186,"url":"https://github.com/scrive/log","last_synced_at":"2025-03-26T07:32:05.467Z","repository":{"id":31652277,"uuid":"35217604","full_name":"scrive/log","owner":"scrive","description":"Structured logging solution.","archived":false,"fork":false,"pushed_at":"2023-03-14T18:44:09.000Z","size":353,"stargazers_count":35,"open_issues_count":2,"forks_count":7,"subscribers_count":34,"default_branch":"master","last_synced_at":"2024-10-30T00:34:12.836Z","etag":null,"topics":["haskell","logging","scrive"],"latest_commit_sha":null,"homepage":"https://hackage.haskell.org/package/log-base","language":"Haskell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/scrive.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2015-05-07T12:01:18.000Z","updated_at":"2024-08-18T20:18:35.000Z","dependencies_parsed_at":"2024-10-29T23:32:37.617Z","dependency_job_id":null,"html_url":"https://github.com/scrive/log","commit_stats":{"total_commits":268,"total_committers":17,"mean_commits":"15.764705882352942","dds":0.5597014925373134,"last_synced_commit":"6bf80cab8d9684a6c1dfde3f35edbdff40bd1c40"},"previous_names":[],"tags_count":46,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scrive%2Flog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scrive%2Flog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scrive%2Flog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scrive%2Flog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/scrive","download_url":"https://codeload.github.com/scrive/log/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245611789,"owners_count":20643894,"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":["haskell","logging","scrive"],"created_at":"2024-10-29T23:10:16.970Z","updated_at":"2025-03-26T07:32:04.851Z","avatar_url":"https://github.com/scrive.png","language":"Haskell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# log\n\n[![Hackage version](https://img.shields.io/hackage/v/log-base.svg?label=Hackage)](https://hackage.haskell.org/package/log-base)\n[![Build Status](https://github.com/scrive/log/workflows/Haskell-CI/badge.svg?branch=master)](https://github.com/scrive/log/actions?query=branch%3Amaster)\n\nA set of libraries that provide a way to record structured log messages with\nmultiple backends.\n\nSupported backends:\n\n* Standard output via\n  [`log-base`](https://hackage.haskell.org/package/log-base).\n* Elasticsearch via\n  [`log-elasticsearch`](https://hackage.haskell.org/package/log-elasticsearch).\n* PostgreSQL via\n  [`log-postgres`](https://hackage.haskell.org/package/log-postgres).\n\n## Example\n\nA sample usage for logging to both standard output and Elasticsearch:\n\n```haskell\n{-# LANGUAGE OverloadedStrings #-}\nmodule Main where\n\nimport Log\nimport Log.Backend.ElasticSearch\nimport Log.Backend.StandardOutput\n\nmain :: IO ()\nmain = do\n  let config = defaultElasticSearchConfig\n        { esServer = \"http://localhost:9200\"\n        , esIndex  = \"logs\"\n        }\n  withStdOutLogger $ \\stdoutLogger -\u003e do\n    withElasticSearchLogger config $ \\esLogger -\u003e do\n      runLogT \"main\" (stdoutLogger \u003c\u003e esLogger) defaultLogLevel $ do\n        logInfo_ \"Hi there\"\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscrive%2Flog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fscrive%2Flog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscrive%2Flog/lists"}