[Mesa-dev] [PATCH] mesa: new MESA_LOG_FILE env var to log errors, warnings, etc., to a file
Jose Fonseca
jfonseca at vmware.com
Mon Jun 25 11:04:59 PDT 2012
Looks good to me.
Reviewed-by: Jose Fonseca <jfonseca at vmware.com>
Jose
----- Original Message -----
> ---
> docs/envvars.html | 2 ++
> src/mesa/main/errors.c | 14 ++++++++++++--
> 2 files changed, 14 insertions(+), 2 deletions(-)
>
> diff --git a/docs/envvars.html b/docs/envvars.html
> index fffb50a..102ea28 100644
> --- a/docs/envvars.html
> +++ b/docs/envvars.html
> @@ -42,6 +42,8 @@ sometimes be useful for debugging end-user issues.
> printed to stderr.<br>
> If the value of MESA_DEBUG is 'FP' floating point arithmetic
> errors will
> generate exceptions.
> +<li>MESA_LOG_FILE - specifies a file name for logging all errors,
> warnings,
> +etc., rather than stderr
> <li>MESA_TEX_PROG - if set, implement conventional texture env modes
> with
> fragment programs (intended for developers only)
> <li>MESA_TNL_PROG - if set, implement conventional vertex
> transformation
> diff --git a/src/mesa/main/errors.c b/src/mesa/main/errors.c
> index 69dbb65..ef78a0b 100644
> --- a/src/mesa/main/errors.c
> +++ b/src/mesa/main/errors.c
> @@ -801,12 +801,21 @@ output_if_debug(const char *prefixString, const
> char *outputString,
> GLboolean newline)
> {
> static int debug = -1;
> + static FILE *fout = NULL;
>
> /* Init the local 'debug' var once.
> * Note: the _mesa_init_debug() function should have been called
> * by now so MESA_DEBUG_FLAGS will be initialized.
> */
> if (debug == -1) {
> + /* If MESA_LOG_FILE env var is set, log Mesa errors, warnings,
> + * etc to the named file. Otherwise, output to stderr.
> + */
> + const char *logFile = _mesa_getenv("MESA_LOG_FILE");
> + if (logFile)
> + fout = fopen(logFile, "w");
> + if (!fout)
> + fout = stderr;
> #ifdef DEBUG
> /* in debug builds, print messages unless MESA_DEBUG="silent"
> */
> if (MESA_DEBUG_FLAGS & DEBUG_SILENT)
> @@ -821,9 +830,10 @@ output_if_debug(const char *prefixString, const
> char *outputString,
>
> /* Now only print the string if we're required to do so. */
> if (debug) {
> - fprintf(stderr, "%s: %s", prefixString, outputString);
> + fprintf(fout, "%s: %s", prefixString, outputString);
> if (newline)
> - fprintf(stderr, "\n");
> + fprintf(fout, "\n");
> + fflush(fout);
>
> #if defined(_WIN32) && !defined(_WIN32_WCE)
> /* stderr from windows applications without console is not
> usually
> --
> 1.7.3.4
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
More information about the mesa-dev
mailing list