From: Arran Cudbard-Bell Date: Mon, 18 Feb 2013 15:42:09 +0000 (-0500) Subject: Check whether it's appropriate to output colourised log messages X-Git-Tag: release_3_0_0_beta1~1055 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d4790f23dcaaf8e380763f308497ae84f3770f1c;p=thirdparty%2Ffreeradius-server.git Check whether it's appropriate to output colourised log messages --- diff --git a/raddb/radiusd.conf.in b/raddb/radiusd.conf.in index f2a3ef77723..fd2d6ea8631 100644 --- a/raddb/radiusd.conf.in +++ b/raddb/radiusd.conf.in @@ -213,6 +213,9 @@ log { # # Highlight important messages sent to stderr and stdout. # + # Option will be ignored (disabled) if output if TERM is not + # an xterm or output is not to a TTY. + # colourise = yes # diff --git a/src/main/mainconfig.c b/src/main/mainconfig.c index 1972afb9969..4f4d5f052fd 100644 --- a/src/main/mainconfig.c +++ b/src/main/mainconfig.c @@ -883,6 +883,15 @@ int read_mainconfig(int reload) } } + /* Check whether it's appropriate to colourise log output */ + p = getenv("TERM"); + if (!(((mainconfig.radlog_dest == RADLOG_STDOUT) || + (mainconfig.radlog_dest == RADLOG_STDERR)) && + isatty(mainconfig.radlog_fd) && p && strstr(p, "xterm"))) { + mainconfig.colourise = FALSE; + } + p = NULL; + /* Initialize the dictionary */ cp = cf_pair_find(cs, "dictionary"); if (cp) p = cf_pair_value(cp);