shrpx: Color severity level in terminal
Color severity level if stderr refers to a terminal.
This commit is contained in:
parent
bbf6c18575
commit
9b1f36d274
|
@ -369,6 +369,7 @@ void fill_default_config()
|
||||||
mod_config()->gid = 0;
|
mod_config()->gid = 0;
|
||||||
mod_config()->backend_ipv4 = false;
|
mod_config()->backend_ipv4 = false;
|
||||||
mod_config()->backend_ipv6 = false;
|
mod_config()->backend_ipv6 = false;
|
||||||
|
mod_config()->tty = isatty(fileno(stderr));
|
||||||
}
|
}
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
|
|
|
@ -122,6 +122,8 @@ struct Config {
|
||||||
char *cacert;
|
char *cacert;
|
||||||
bool backend_ipv4;
|
bool backend_ipv4;
|
||||||
bool backend_ipv6;
|
bool backend_ipv6;
|
||||||
|
// true if stderr refers to a terminal.
|
||||||
|
bool tty;
|
||||||
};
|
};
|
||||||
|
|
||||||
const Config* get_config();
|
const Config* get_config();
|
||||||
|
|
|
@ -33,9 +33,20 @@
|
||||||
|
|
||||||
namespace shrpx {
|
namespace shrpx {
|
||||||
|
|
||||||
|
namespace {
|
||||||
const char *SEVERITY_STR[] = {
|
const char *SEVERITY_STR[] = {
|
||||||
"INFO", "WARN", "ERROR", "FATAL"
|
"INFO", "WARN", "ERROR", "FATAL"
|
||||||
};
|
};
|
||||||
|
} // namespace
|
||||||
|
|
||||||
|
namespace {
|
||||||
|
const char *SEVERITY_COLOR[] = {
|
||||||
|
"\033[1;32m", // INFO
|
||||||
|
"\033[1;33m", // WARN
|
||||||
|
"\033[1;31m", // ERROR
|
||||||
|
"\033[1;35m", // FATAL
|
||||||
|
};
|
||||||
|
} // namespace
|
||||||
|
|
||||||
int Log::severity_thres_ = WARNING;
|
int Log::severity_thres_ = WARNING;
|
||||||
|
|
||||||
|
@ -80,12 +91,17 @@ Log::Log(int severity, const char *filename, int linenum)
|
||||||
Log::~Log()
|
Log::~Log()
|
||||||
{
|
{
|
||||||
if(severity_ >= severity_thres_) {
|
if(severity_ >= severity_thres_) {
|
||||||
fprintf(stderr, "[%s] %s\n (%s, line %d)\n",
|
fprintf(stderr, "[%s%s%s] %s\n %s(%s:%d)%s\n",
|
||||||
SEVERITY_STR[severity_], stream_.str().c_str(),
|
get_config()->tty ? SEVERITY_COLOR[severity_] : "",
|
||||||
filename_, linenum_);
|
SEVERITY_STR[severity_],
|
||||||
|
get_config()->tty ? "\033[0m" : "",
|
||||||
|
stream_.str().c_str(),
|
||||||
|
get_config()->tty ? "\033[1;30m" : "",
|
||||||
|
filename_, linenum_,
|
||||||
|
get_config()->tty ? "\033[0m" : "");
|
||||||
fflush(stderr);
|
fflush(stderr);
|
||||||
if(get_config()->use_syslog) {
|
if(get_config()->use_syslog) {
|
||||||
syslog(severity_to_syslog_level(severity_), "%s (%s, line %d)\n",
|
syslog(severity_to_syslog_level(severity_), "%s (%s:%d)\n",
|
||||||
stream_.str().c_str(), filename_, linenum_);
|
stream_.str().c_str(), filename_, linenum_);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue