[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