vkryukov
Hi, I’ve created an SQL logger backend using LoggerBackends: GitHub - vkryukov/logger_backends_sql · GitHub.
It safely stores all metadata and can be configured to use an existing Repo and/or Schema.
The simplest setup uses an SQLite3 database for logs:
# config/config.exs
config :logger, LoggerBackends.SQL,
level: :debug,
path: "./logs.sqlite"
Logs will be written to the logs table. You can also use an existing repo and customize the table name:
# config/config.exs
config :logger, LoggerBackends.SQL,
repo: MyApp.Repo,
table_name: "log_messages"
You can use your own Schema for log messages - just ensure the schema module defines a changeset/1 function that accepts time, message, and meta arguments.
Feedback welcome!
Trending in Announcing
The repo is at GitHub - cyberchitta/openai_ex: Community maintained Elixir library for OpenAI API · GitHub.
Docs are at OpenaiEx User Gu...
New
WebAuthnLiveComponent WebAuthnComponents
See this post about renaming the package.
Passwordless authentication for Phoenix LiveView app...
New
I fully migrated to my own harness from Anthropic/Gemini and I think it’s time to share it. Welcome DSH, the DeepSeek Harness, fully writ...
New
Castle is a package I put together to assist with building Elixir releases capable of being live-upgraded via the ‘official’ release hand...
New
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
Emily is an Elixir library that runs Nx computations on Apple’s MLX. Install it as the default Nx backend and Nx, defn, Axon, Nx.Serving,...
New
In 2021 I started a new library called Tempo with the objective of modelling time as a set of intervals - not as instants. In 2022 I gave...
New
Other Trending Topics
A little off-topic, but I feel like people here have a good head on their shoulders.
I used to be quite good at making software. Was luc...
New
Hey. Is there anyone here who creates agents in their apps? Not talking about using agents, but creating them. I’m finding it pretty diff...
New
There has been a thread to discuss the Stack Overflow Developer Survey on this forum every year since 2018, so here’s yet another one for...
New
I love Elixir. It’s one of 2 programming languages I’ve ever fallen in love with.
But I don’t use it anymore.
Serverless was the promis...
New
(I just needed to vent somewhere and LinkedIn is full of hope, or hype, I’m not sure which exactly)
AI dream has many faces, but general...
New
What IDE or editor are you using for Elixir development?
Personally, I use Zed, and I really like it, but sometimes I wish there were a ...
New
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #library
- #deployment
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #elixirconf
- #channels
- #exunit
- #discussion
- #code-sync
- #podcasts
- #javascript
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #ai
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #blog-post
- #elixirconf-us
- #elixir-ls
- #phoenix_html
- #iex
- #graphql
- #genstage
- #websockets
- #supervisor
- #advent-of-code
- #distillery
- #processes
- #elixirconf-eu
- #api
- #forms
- #security
- #metaprogramming










Showing Posts 1 to 1- Show Best Posts
- Show All (oldest first)
- Show All (newest first)
vkryukov
While we are here, I would like people’s thoughts on the best way to configure the backend during the runtime.
LoggerBackendsoffersconfigure/2, which can be called like this:and will send a
:configureevent to the backend that it can capture. The reference implementation forLoggerBackend.Consoleis here. This call will only succeed after a backend has already been added withLoggerBackend.add(LoggerBackends.SQL)(as someone needs to listen to these events).However, you definitely want to set the path to a SQLite log database before adding the backend to perform all the initialization in the backend’s
initfunction.Something like this would be nice
However,
LoggerBackends.add/2only processes the:flushoption and ignores everything else.So my current solution is to expose my own
configure/1to do the runtime config:The previous option with
LoggerBackend.add/2is IMHO cleaner, but requires changing the existing contract.Thoughts?