| // Copyright (c) 2012 The Chromium OS Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include <strings.h> |
| #include <syslog.h> |
| |
| #include <string> |
| |
| // Moved syslog related functionality to this file to avoid |
| // conflicts with defintions in base/logging.h |
| |
| int SysLogHelperSetLevel(const std::string& level) { |
| int mask = 0; |
| const char* cstr = level.c_str(); |
| |
| if (strcasecmp(cstr, "debug") == 0) { |
| mask = LOG_UPTO(LOG_DEBUG); |
| } else if (strcasecmp(cstr, "info") == 0) { |
| mask = LOG_UPTO(LOG_INFO); |
| } else if (strcasecmp(cstr, "warn") == 0) { |
| mask = LOG_UPTO(LOG_WARNING); |
| } else if (strcasecmp(cstr, "error") == 0) { |
| mask = LOG_UPTO(LOG_ERR); |
| } else { |
| std::string msg(std::string("Invalid Logging Level: ") + level); |
| return -1; |
| } |
| setlogmask(mask); |
| return 0; |
| } |
| |
| void SysLogHelperInit(void) { |
| // Can't use LOG here, unfortunately :( we don't want it to be an error but we |
| // do want it logged regardless of priority level. |
| openlog("cromo", LOG_PID, LOG_LOCAL3); |
| syslog(LOG_NOTICE, "vcsid %s", VCSID); |
| closelog(); |
| |
| // The gobi-sdk's log level for its TRACE messages is DEBUG. That spews |
| // too much info, so by default set the syslog level to INFO. |
| SysLogHelperSetLevel("info"); |
| } |