vlad.grb
How to add colours to Logger
Can anyone provide please an example how to add, lets say purple color, to console logger backend?
I tried to redo the same what I’ve found in Ecto’s source code, but unfortunately it didn’t give any result.
Marked As Solved
vlad.grb
Thanks for your response.
I misunderstood documentation and was passing color parameter instead of ansi_color
So here is how to specify a color
Logger.debug("Elixir is awesome", ansi_color: :blue)
Also Liked
SeedyROM
I realized something dumb that I forgot to mention, the syntax color for info is white… So the reason I never saw the color in my dumb tests was my fault. If you 're looking for something like rust’s env_logger or any nodejs logging library. The level isn’t the color that changes, it’s the entire log. I hope randos from the other programming language worlds find this to be helpful in a latenight configuration hackathon.
A simple example is Logger.info will return an all white output and Logger.warn will return an all yellow result.
CharlesO
I guess so, I applied this scheme to my .iex.exs file and i have a purple IEx> prompt, so I know i have colors enabled…
Application.put_env(:elixir, :ansi_enabled, true)
IEx.configure(
inspect: [limit: :infinity, pretty: true, structs: true, width: 210],
colors: [enabled: true],
default_prompt: [
"\e[G", # ANSI CHA, move cursor to column 1
:magenta,
"%prefix", # IEx prompt variable
">", # plain string
:reset
] |> IO.ANSI.format |> IO.chardata_to_string
)
but still, I cannot get Logger to emit colored logs…strange
CharlesO
To get colors in logger, add :colors to config
config :logger, :console, format: "[$date $time] $message\n", colors: [enabled: true]
To get IEx style colours in Logger:
@syntax_colors [number: :yellow, atom: :cyan, string: :green, boolean: :magenta, nil: :magenta]
@format [
pretty: true,
structs: true,
syntax_colors: @syntax_colors
]
Then write logs like so:
Logger.debug(inspect(%{status: 2, message: "Done", rows: 100}, @format))
CharlesO
I could not get this to work.
I’m using conEmu on windows.
Any help please?
OvermindDL1
It is ‘just working’ in ConEmu here in Windows 10 when I run the above code? Do you have the console set up right?







