有没有办法限制日志记录在Julia中只打印N次?

有没有办法限制日志记录在Julia中只打印N次?,julia,Julia,如果我有一个记录太多的@warn或@info,是否有一个包或函数可以用来限制警告只记录“每N次”或类似的内容 我正在寻找类似于谷歌C++日志库函数的代码 LogyEngEnn(信息,n)< /C>。 我往里看了看,发现没有找到像这样的东西 查看有关处理程序的Memento文档。要每隔一段时间记录日志,您可以 做一些类似于: using Memento mutable struct MyHandler{F<:Formatter, O<:IO} <: Handler{F, O}

如果我有一个记录太多的
@warn
@info
,是否有一个包或函数可以用来限制警告只记录“每N次”或类似的内容

我正在寻找类似于谷歌C++日志库函数的代码<代码> LogyEngEnn(信息,n)< /C>。


我往里看了看,发现没有找到像这样的东西

查看有关处理程序的Memento文档。要每隔一段时间记录日志,您可以 做一些类似于:

using Memento

mutable struct MyHandler{F<:Formatter, O<:IO} <: Handler{F, O}
    fmt::F
    io::O
    interval::Int
    count::Int
end

c = MyHandler(Memento.DefaultFormatter(), stderr, 10, 0)

function emit(handler::MyHandler{F, O}, rec::Record) where {F<:Formatter, O<:IO}
    if (handler.count += 1) % handler.interval == 0
        str = Memento.format(handler.fmt, rec)
        println(handler.io, str)
        flush(handler.io)
    end
end
使用Memento

易变结构MyHandler{FIt很容易适应LoggingExras中的
EarlyFilteredLogger
示例来实现这一点。这并不完全是您所要求的,但ProgressMeter.jl可以设置为每隔一段时间报告一次。它可以输出数据值以及简单的“%done”查看可能性的最佳方法之一是在交互式会话中运行测试。