[Rd] [R logs] Help in develop a simply logs package

Duncan Murdoch murdoch.duncan at gmail.com
Tue Oct 7 16:51:44 CEST 2014


On 07/10/2014 10:41 AM, DataK - B. THIEURMEL wrote:
> OK, thank you for your answers. We are thus going to continue by
> analyzing these features

The general outline would be this:

1.  Call parse() on the whole file.  This will catch any syntax errors.  
If it parses okay, you'll get a vector of expressions to evaluate.

2.  Evaluate each expression in sequence within withCallingHandlers().  
You need to decide what to do if you get an error(); source() would quit 
the script at that point, so that's probably a good idea.

Duncan Murdoch
>
> Le 2014-10-07 16:29, Duncan Murdoch a écrit :
> > On 07/10/2014 10:16 AM, DataK - B. THIEURMEL wrote:
> >> Thank. withCallingHandlers() and "pander::evals" seem to be very
> >> interesting, but little adapted to the analysis of one or several
> >> scripts R / of many lines of code. Our goal is one packages requiring
> >> no
> >> modifications of code R to be able to get back all the desired
> >> information.
> >>
> >> Is-there a hope in seeing R core team adding two options warn and
> >> message with the same features as options(error) ? Or if we try (and
> >> succeed) to code a patch for it, to see it integrating in R ?
> >
> > No, I don't think so.  withCallingHandlers is all you need for your
> > purpose.
> >
> > Duncan Murdoch
> >
> >>
> >> I think that it would be very useful.
> >>
> >> Benoit
> >>
> >> Le 2014-10-07 14:38, Gergely Daróczi a écrit :
> >> > On Tue, Oct 7, 2014 at 2:21 PM, Duncan Murdoch
> >> > <murdoch.duncan at gmail.com> wrote:
> >> >
> >> >> On 07/10/2014, 7:04 AM, DataK - B. THIEURMEL wrote:
> >> >>> Hi,
> >> >>>
> >> >>> With the use of R in production, it is necessary to have a system
> >> >> of
> >> >>> logs effective, and light.
> >> >>>
> >> >>> Package exist as to futile.logger, but it require the additional
> >> >> coding
> >> >>> of logs. So it is thus impossible / very difficult to use it with
> >> >> all
> >> >>> package them used in the calculation
> >> >>>
> >> >>> Our idea is to develop one packages global, simple, who would
> >> >> allow to
> >> >>> identify all the errors, warning, message generated by the
> >> >> functions
> >> >>> stop(), warning() and message() stop as well as by signals and
> >> >>> internally code, with log levels configurable later by package,
> >> >>> functions...
> >> >>>
> >> >>> One way is to overwrite temporarily the functions stop(),
> >> >> warning() and
> >> >>> message() of base package, but I think is not a good thing, and
> >> >>> furthermore, we lose all signals and internally "message"...
> >> >>>
> >> >>> A good use of options(error) seems to do the perfect job, but
> >> >> only for
> >> >>> error...
> >> >>>
> >> >>> Our problem / question :
> >> >>> - At present, how it is possible to have the same features for
> >> >> messages
> >> >>> and warnings? (like options(errors)) (I don't find...)
> >> >>> - Would new options be possible in a near future R ?
> >> >>> - Have there better / other possibilities to handle all the
> >> >> warnings,
> >> >>> message of the way which we wish?
> >> >>>
> >> >>
> >> >> ​​withCallingHandlers() lets you evaluate expressions with code
> >> >> to catch
> >> >> messages, warnings and errors.
> >> >
> >> > That's exactly what I'm using in "pander::evals" to capture all
> >> > error/warning/normal messages while evaluating an R command, and to
> >> > also capture the results (as R objects), stdout and the printed
> >> > version of the object -- which might be useful in a custom
> >> > environment. E.g. I use this function to evaluate all R chunks in
> >> > markdown document and also to store all R messages run at the
> >> > rapporter.net [2] API. Please let me know if anyone is interested, and
> >> > I will start cleaning up the related codebase and publish on GH --
> >> > although "pander" and "evals" is already
> >> > there: https://github.com/Rapporter/pander [3]
> >> >
> >> > Quick demo: http://pastebin.com/jCUkgKim [4]
> >> >
> >> >
> >> >> I don't know if there's a way to evaluate every expression entered
> >> >> at
> >> >> the console within withCallingHandlers() for an effect like
> >> >> options(error=), but you can certainly write code to read a file
> >> >> and
> >> >> evaluate every expression in it within a withCallingHandlers()
> >> >> call.
> >> >>
> >> >> Duncan Murdoch
> >> >>
> >> >>> Hope is clear. Open to any suggestions.
> >> >>>
> >> >>> Thank you in advance
> >> >>>
> >> >>
> >> >> ______________________________________________
> >> >> R-devel at r-project.org mailing list
> >> >> https://stat.ethz.ch/mailman/listinfo/r-devel [1]
> >> >
> >> >
> >> >
> >> > Links:
> >> > ------
> >> > [1] https://stat.ethz.ch/mailman/listinfo/r-devel
> >> > [2] http://rapporter.net
> >> > [3] https://github.com/Rapporter/pander
> >> > [4] http://pastebin.com/jCUkgKim
> >>
>



More information about the R-devel mailing list