Bukdu.jl icon indicating copy to clipboard operation
Bukdu.jl copied to clipboard

is any simple way how to extend the logging message in Bukdu?

Open wookay opened this issue 4 years ago • 2 comments
trafficstars

Roman Samarev
Hi, is any simple way how to extend the logging message in Bukdu? I need to add a date/time
log(str) = "$(Dates.format(Dates.now(), "yyyy-mm-dd HH:MM:SS")): $(str)"

wookay avatar Jul 20 '21 23:07 wookay

using Bukdu # Plug plug
using Logging: AbstractLogger
using Dates
using HTTP

struct MyLogger <: AbstractLogger
    stream
end

function Plug.Loggers.info_response(logger::MyLogger, conn::Conn, route::Bukdu.RouteAction)
    io = logger.stream
    Base.print(io, "$(Dates.format(Dates.now(), "yyyy-mm-dd HH:MM:SS")): ")
    Plug.Loggers.default_info_response(io, conn, route)
    Base.flush(io)
end

function Plug.Loggers.print_message(logger::MyLogger, args...; kwargs...)
    io = logger.stream
    Base.print(io, "$(Dates.format(Dates.now(), "yyyy-mm-dd HH:MM:SS")): ")
    Base.println(io, args...; kwargs...)
    Base.flush(io)
end

plug(MyLogger, stdout)

Bukdu.start(8193)

routes() do
    get("/") do conn::Conn
        render(Text, "ok")
    end
end

HTTP.get("http://127.0.0.1:8193/")
Bukdu.stop()

wookay avatar Jul 21 '21 00:07 wookay

see also https://github.com/wookay/Bukdu.jl/blob/master/test/bukdu/plugs/loggers.jl

wookay avatar Jul 21 '21 00:07 wookay