JuliaLogging / LoggingExtras.jl

Composable Loggers for the Julia Logging StdLib

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Mix the formatting of ConsoleLogger with FileLogger

HumpyBlumpy opened this issue · comments

Hello,

I want to output ConsoleLogger to a file. Is it possible?
From the documentation, I first tried using FileLogger. This worked, but outputted too much information (a whole line with the source code location). So next I tried the example from the documentation :

logger = FormatLogger(open("logfile.txt", "w")) do io, args
    println(io, args._module, " | ", "[", args.level, "] ", args.message)
end;

This was better, but not as nice as ConsoleLogger (and was missing some information in some cases).
So basically, I think ConsoleLogger is perfect and I just want to output the same information with the same formatting to a file.

You can pass an open file handle to the ConsoleLogger.

How do I make use of LoggingExtras in such a case?
The main thing I want out of it is the automatic flushing. I want the log to be continuously updated, not only at the end of the execution of the file.

This is not currently possible.
I guess we could make a forced flushing wrapper logger.
I kind a feel like that should be handled at the stream level though.
Or the OS level?

It would be nice to have FormatLogger (and SimpleLogger) formatting available in https://github.com/JuliaLogging/LoggingFormats.jl