Code Monkey home page Code Monkey logo

Comments (5)

hustf avatar hustf commented on July 22, 2024 1

You probably know about ending lines with ; when playing around with defintions.

Given that the Julia web stack is a hierarchy of dependencies, we need to be able to adapt or suppress messages from further down the stack.

To find the actual source of some REPL output can be a bit tricky. It may require that you catch all output and add a header.

Here's an example I believe can be adapted for your context. There are some further examples of suppressing and adapting output in WebSockets.jl.

using Logging
import Logging.shouldlog
function shouldlog(::ConsoleLogger, level, _module, group, id)
    if _module == Mux.HTTP.Servers
        if level == Logging.Warn || level == Logging.Info
            return false
        else
            return true
        end
    else
        return true
    end
end

from mux.jl.

hustf avatar hustf commented on July 22, 2024 1

The Julia webstack libraries I know are not up to par for "production use", but to my knowledge they are the fastest solution when interfacing with Julia processes (and possibly other things, but I would go for user-friendliness and stack-overflow coverage in that case). In core packages, user-friendliness will be sacrificed for speed, stability and transparency. More user-facing code can add user-friendliness. Even if those users are other package developers.

Unfortunately, Logging.jl is a very recent addition to the standard library and therefore not widely used. This is very likely to improve if we keep submitting small issues and pull requests, e.g. replacing @info with @debug or adding examples.

By the way, Mux.jl has more dependencies, see 'REQUIRE'. And I don't favour using environment variables for controlling the output, but it's very nice if the setting can be changed while a server is running.

from mux.jl.

houd1ni avatar houd1ni commented on July 22, 2024

@hustf Thanx, I'll try this.

Of course, I know, that most of any language library has a lot of deps. But in most languages, log level is either configurable or even get destroyed by minifier (JavaScript included) to avoid this noise. By default, for sure, in production use (env variable?) this should be disabled. Or is there any advantage by using such things as webservers in REPL? 😆

I also know that the lib has only one dependency -- HTTP. So, I believe, the real problem has to be found there.

from mux.jl.

tjlittle avatar tjlittle commented on July 22, 2024

In case it's not clear from the thread, @hustf's solution works. At least it did for me.

from mux.jl.

jpsamaroo avatar jpsamaroo commented on July 22, 2024

Mux.jl does not contain any at-info or at-debug macros; it is HTTP.jl that does. The only uses of print/println are in error cases, which should probably be replaced with @error or @warn, as appropriate.

from mux.jl.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.