unofficial mirror of guile-user@gnu.org 
 help / color / mirror / Atom feed
From: Roel Janssen <roel@gnu.org>
To: Zelphir Kaltstahl <zelphirkaltstahl@posteo.de>, guile-user@gnu.org
Subject: Re: Logging in Guile
Date: Mon, 13 Jan 2020 22:42:08 +0100	[thread overview]
Message-ID: <f62496414333c95060c42314862f873432e5b7e3.camel@gnu.org> (raw)
In-Reply-To: <3d636a08-f49d-c06f-2436-1838d3a652f2@posteo.de>

On Mon, 2020-01-13 at 19:06 +0100, Zelphir Kaltstahl wrote:
> Hi Guile Users!
> 
> Is there any library for logging in Guile?
> 
> What I imagine is something, where I can log messages of various levels,
> like debug, info, error and such. Currently I am using display and
> simple-format for all the things, but it would be nice to be able to run
> a program and give it some log level, so that only the log messages of
> that level or above in importance are shown. Then I could leave all my
> logging in my code and set it to debug level or, if intended to be seen
> for the user, set it to info level, or if there really is an error, I
> could set it to error level.
> 
> On a quick search I could not find anything.
> 
> Regards,
> Zelphir

I'm using a rather simple module that distinguishes errors from warnings and
debug:
https://github.com/UMCUGenetics/sparqling-genomics/blob/master/web/logger.scm

You could implement your own log levels easily..

So you can use it like this:
(log-error "the-calling-function" "A ~a ~a ~a" "format" "like" "format")
(log-debug "the-calling-function" "Similar to ~a" 'log-error)
(log-warning "the-calling-function" "Similar to ~a" 'log-debug)

Then there are three functions that return a port to write to:
(default-error-port) (default-warning-port) (default-debug-port)

When (null? port) => #t, no message is written.

See:
https://github.com/UMCUGenetics/sparqling-genomics/blob/dc5fea515c30aa26ff60b77911438689473d125b/web/ldap/authenticate.scm.in#L148

Kind regards,
Roel Janssen





  parent reply	other threads:[~2020-01-13 21:42 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-13 18:06 Logging in Guile Zelphir Kaltstahl
2020-01-13 18:17 ` Alex Sassmannshausen
2020-01-14 23:07   ` Zelphir Kaltstahl
2020-01-13 18:47 ` John Cowan
2020-01-14 23:51   ` Zelphir Kaltstahl
2020-01-13 21:42 ` Roel Janssen [this message]
2020-01-14 23:53   ` Zelphir Kaltstahl

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/guile/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=f62496414333c95060c42314862f873432e5b7e3.camel@gnu.org \
    --to=roel@gnu.org \
    --cc=guile-user@gnu.org \
    --cc=zelphirkaltstahl@posteo.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).