X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Flogging.cc;h=0b5e6ee97272cd5df4979e2c290db36bb8d62c79;hb=f2157a387b6036cd05153339f315883c50053c69;hp=8936fe3c6f3c8ed25d427145522ee6d240767628;hpb=ed072a55b885a2b7fe765492aabe3b502c851d72;p=platform%2Fupstream%2Fglog.git diff --git a/src/logging.cc b/src/logging.cc index 8936fe3..0b5e6ee 100644 --- a/src/logging.cc +++ b/src/logging.cc @@ -88,6 +88,10 @@ using std::perror; using std::fdopen; #endif +#ifdef _WIN32 +#define fdopen _fdopen +#endif + // There is no thread annotation support. #define EXCLUSIVE_LOCKS_REQUIRED(mu) @@ -161,6 +165,8 @@ static const char* DefaultLogDir() { return ""; } +GLOG_DEFINE_int32(logfile_mode, 0664, "Log file mode/permissions."); + GLOG_DEFINE_string(log_dir, DefaultLogDir(), "If specified, logfiles are written into this directory instead " "of the default logging directory."); @@ -570,7 +576,7 @@ inline void LogDestination::FlushLogFilesUnsafe(int min_severity) { // assume we have the log_mutex or we simply don't care // about it for (int i = min_severity; i < NUM_SEVERITIES; i++) { - LogDestination* log = log_destination(i); + LogDestination* log = log_destinations_[i]; if (log != NULL) { // Flush the base fileobject_ logger directly instead of going // through any wrappers to reduce chance of deadlock. @@ -819,6 +825,7 @@ void LogDestination::DeleteLogDestinations() { } MutexLock l(&sink_mutex_); delete sinks_; + sinks_ = NULL; } namespace { @@ -899,7 +906,7 @@ bool LogFileObject::CreateLogfile(const string& time_pid_string) { string string_filename = base_filename_+filename_extension_+ time_pid_string; const char* filename = string_filename.c_str(); - int fd = open(filename, O_WRONLY | O_CREAT | O_EXCL, 0664); + int fd = open(filename, O_WRONLY | O_CREAT | O_EXCL, FLAGS_logfile_mode); if (fd == -1) return false; #ifdef HAVE_FCNTL // Mark the file close-on-exec. We don't really care if this fails