R has support for options(warning.expression=...), but it acts differently than the options(error=...).
S (and S+) let the user override the default '.Program' expression. Its default value was essentially print(.Last.value <- eval(parse(file=stdin()))) but a replacement could add stuff like print the time it took to do the evaluation, put errors and warnings into a log file, or even read input expressions from an alternate source. R has some hook functions that let you do some of that, but I don't know how much they let you do. Bill Dunlap TIBCO Software wdunlap tibco.com On Tue, Oct 7, 2014 at 7:16 AM, DataK - B. THIEURMEL <b...@datak.fr> 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 ? > > 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.dun...@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@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 > > > -- > Benoit Thieurmel > +33 6 69 04 06 11 > > DataKnowledge > 46 rue Amsterdam - 75009 Paris > > ______________________________________________ > R-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel