What are "Verbosity logging macros?"

I am getting this warning:

┌ KiteUtils
│  ┌ Warning: Verbosity logging macros are deprecated as they are not compatible with juliac-compiled programs
│  │   caller = ip:0x0
│  └ @ Core :-1
└  

But what are “Verbosity logging macros?” How can I search my code for them?

@info @warn @error etc.?

None of them in my code. And what could this mean:

@ Core :-1

?

Maybe in a dependency?

That line is a Module and (should be a file and) line number for the origin of the warning, but maybe that information isn’t available because of juliac-compilation?

JuliaHub code search shows the warning is coming from here:

2 Likes

you aren’t the only one! I just started seeing these too…

Currently, I only see them on CI on GitHub. (Julia 1.10)

Test Summary:                 | Pass  Broken  Total   Time
duplicate names and overrides |  131       1    132  19.1s
┌ Warning: Verbosity logging macros are deprecated as they are not compatible with juliac-compiled programs
│   caller = ip:0x0
└ @ Core :-1
  2.004 μs (1 allocation: 7.94 KiB)

This is right before a BenchmarkTools output… could that be it? (But @time didn’t throw anything…)

There’s a section written about them

GitHub - JuliaLogging/LoggingExtras.jl at 414e0c8136ab51ffb44183cbe7cab59c66d89490

Not sure how long that’ll remain the case when they are deprecated. I’m also pretty curious why they’re

as there is understandably little information about what isn’t or can never be juliac-friendly.

1 Like

It’s:

@debugv N msg args...
@infov N msg args...
@warnv N msg args...
@errorv N msg args...

“Verbose” logging macros. Drop in replacements of standard logging macros, but an additional verbosity level N is passed to indicate differing verbosity levels for a given log level. …

From that LoggingExtras.jl package, i.e. nothing (yet, as far as I know) in Julia itself deprecated.

I didn’t even know of these, but they seems useful, why someone made them, so I’m curious why not working for juliac as opposed to “standard logging macros” (" @info @warn @error etc."), presumably (or do they actually neither work?).

2 Likes

The verbosity logging macros were a bit of an experiment for package logging. I wanted a way to selectively turn on some logs for only certain package operations by just passing a simple verbose=true like thing to the package operation. It’s surprisingly not a simple problem!

I’ve since come to realize the verbosity macros didn’t actually solve my issue: the LoggingExtras.withlevel function indeed makes it much easier to selectively enable logging, but it still enables, for example, debug logging in any dependent packages are also enabled. Sometimes those can be really noisy and hurt the original purpose of package operation logging.

My most recent thinking on the matter is package operation logging should just override the _group keyword argument for the normal logging macros, coupled with a convenient addition to the withlevel function to filter on specific groups.

2 Likes

I’ve tons of this warnings, that now prevents CI to build my package because of long test duration.

Review · cardo-org/Rembus.jl@7c89c2a · GitHub.

I’m not using LoggingExtras.jl directly in my package: I’m using HTTP.jl, that is the only package with the dependency on LoggingExtras.

Note that It seems that this warning is logged only when running tests:

using Pkg
Pkg.test()

How could I fix this issue?

What version of HTTP.jl are you using? Updating to the latest patch release should fix it AFAIK.

1 Like

I’m using the latest version: HTTP v1.10.9

Arrow.jl, too. Updating to the latest version, v2.7.4, should fix it.

1 Like

I don’t see LoggingExtras dependency in Arrow, in any case the Arrow version is the latest v2.7.4.

CI logs from the link you gave above disagree.

I see …, and I don’t know why the CI pickups Arrow v2.7.3.

On my local machine I’ve Arrow v2.7.4 and the problem is present.