austinsmorris
Does anybody know of a JSON backend for Logger that works with the updates in elixir 1.10? I had been using logger_json but that broke pretty bad with the erlang/otp logger integration introduced in elixir 1.10.0.
Thanks@
Trending in Questions
I’m working on a project that simulates the bumbl example in the programming phoenix book. It acts almost like an email client. We have a...
New
Hello!
Could someone please give me a help/sample code, how to delete a file from s3 using waffle/waffle_ecto from Phoenix app.
I creat...
New
I’m seeing that a list inside a Kino.DataTable will be interpreted as a charlist, even if the Kino.configure() is set to charlists: :as_l...
New
So my question is quite simple and i have found no conclusive answer on forum, google or AI.
Should we use :erlang.float for Integer to ...
New
Hi, I’ve just set up an application with ash_authentication. There is only magic link strategy for now, so there is no confirmation add o...
New
If a change or preparation module uses Ash.Changeset.get_argument/2 or Ash.Query.get_argument/2 (or any of the other get_argument functio...
New
apply_graft/2 doesn’t rewrite an add_many sub-workflow’s deps on an add step. Grafted jobs cancel with “upstream job was deleted”
Version...
New
Other Trending Topics
I am happy to introduce the very α version of the new programming language compiled to BEAM.
Welcome Cure.
It has literally three kille...
New
Hobbes is a low-level distributed database for the Elixir programming language.
Hobbes provides a simple, safe, and scalable storage lay...
New
Hi there! We created Gust: A task orchestrator inspired by Airflow.
For those who have never heard about Aiflow, it’s a Python-based wor...
New
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
Xamal is a deployment tool for Elixir apps that deploys native releases to bare metal servers over SSH. It’s a port of GitHub - basecamp/...
New
Hello everyone. After busy few months I am happy to announce v0.1.0 of Emerge & Solve.
They are GUI (Emerge) and State management (S...
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
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixirconf-us
- #blog-post
- #ai
- #elixir-ls
- #phoenix_html
- #iex
- #graphql
- #genstage
- #websockets
- #supervisor
- #advent-of-code
- #distillery
- #processes
- #api
- #forms
- #hex
- #security
- #metaprogramming










Showing Posts 1 to 6- Show Best Posts
- Show All (oldest first)
- Show All (newest first)
chulkilee
I wrote a formatter (not logger backend) - metadata_logger
. it’s very conservative (e.g. it avoids own transformation - e.g. passing pid would lead to error message)
For Elixir 1.10 and OTP 22 - they introduced new metadata and I fixed the library at Handle metadata by chulkilee · Pull Request #12 · elixir-metadata-logger/metadata_logger · GitHub
fuelen
we use ink at work.
Test with Elixir 1.10:
hauleth
How did it break? Do you have link? Maybe I will be able to help.
In general the plan is to shift away from Elixir’s
Loggerformatters and backends and instead make use of Erlang’slogger.So the “simplest” way for “modern” handling would be to (unfortunately) write custom formatter (that implements one function
format/2) and then use it together with whatever backend you like.EDIT:
I will try to provide an example later.
chulkilee
I checked the failed CI job from test elixir 1.10 by austinsmorris · Pull Request #30 · Nebo15/logger_json · GitHub
It seems like the same problem I had with - Handle metadata by chulkilee · Pull Request #12 · elixir-metadata-logger/metadata_logger · GitHub
Basically, Jason does not transform pid value - and the new erlang logger integration introduces new default metadata
glwhich is pid.See logger — OTP 29.0.2 (kernel 11.0.2) for the list of metadata set by erlang
josevalim
Luckily the fix should be easy: just remove the fields with process information from the metadata. It probably already keeps a list of fields to remove, we just need to update it.
chulkilee
As erlang and elixir logger sees the same logger message.. new metadata field may be added by either erlang or elixir. I believe previously Elixir.Logger would transform or fill metadata… but now I guess it does not (or will not) transform metadata, as a log message can be from erlang.
Anyway, metadata_loggerI converts metadata to map (dropping duplicated metadata!) and convert “known” values (e.g.
gl).Instead of doing converting “known” values - I may make it iterate all metadata (recursively or not) and transform values not implementing Jason protocol… but I want to avoid for performance reason. Or I may just implement Jason protocol to pid… but should I? I don’t want to “pollute” module not defined by my library..