#include "Args.hpp"
-#include <Logging.hpp>
#include <core/exceptions.hpp>
#include <util/file.hpp>
+#include <util/logging.hpp>
#include <util/string.hpp>
Args::Args(Args&& other) noexcept : m_args(std::move(other.m_args))
Context.cpp
Depfile.cpp
Hash.cpp
- Logging.cpp
ProgressBar.cpp
Util.cpp
argprocessing.cpp
#include "Context.hpp"
-#include "Logging.hpp"
#include "SignalHandler.hpp"
#include "Util.hpp"
#include "hashutil.hpp"
#include <util/TimePoint.hpp>
#include <util/file.hpp>
+#include <util/logging.hpp>
#include <util/path.hpp>
#include <util/process.hpp>
#include <util/string.hpp>
{
orig_args = std::move(compiler_and_args);
config.read(cmdline_config_settings);
- Logging::init(config);
+ util::logging::init(config.debug(), config.log_file());
ignore_header_paths =
util::split_path_list(config.ignore_headers_in_manifest());
set_ignore_options(util::split_into_strings(config.ignore_options(), " "));
#include "Context.hpp"
#include "Hash.hpp"
-#include "Logging.hpp"
#include <Util.hpp>
#include <core/exceptions.hpp>
#include <util/Tokenizer.hpp>
#include <util/assertions.hpp>
#include <util/file.hpp>
+#include <util/logging.hpp>
#include <util/path.hpp>
#include <util/string.hpp>
#include "Hash.hpp"
-#include "Logging.hpp"
-
#include <util/Fd.hpp>
#include <util/file.hpp>
#include <util/fmtmacros.hpp>
+#include <util/logging.hpp>
#include <util/string.hpp>
#include <util/wincompat.hpp>
#include "Config.hpp"
#include "Hash.hpp"
-#include "Logging.hpp"
#include "Util.hpp"
#include <util/DirEntry.hpp>
#include <util/conversion.hpp>
#include <util/file.hpp>
#include <util/fmtmacros.hpp>
+#include <util/logging.hpp>
#include <fcntl.h>
#include <libgen.h>
#include "Config.hpp"
#include "Context.hpp"
-#include "Logging.hpp"
#include <Config.hpp>
#include <core/exceptions.hpp>
#include <util/file.hpp>
#include <util/filesystem.hpp>
#include <util/fmtmacros.hpp>
+#include <util/logging.hpp>
#include <util/path.hpp>
#include <util/string.hpp>
#include <util/wincompat.hpp>
#include "argprocessing.hpp"
#include "Context.hpp"
-#include "Logging.hpp"
#include "compopt.hpp"
#include "language.hpp"
#include <Util.hpp>
#include <util/assertions.hpp>
#include <util/fmtmacros.hpp>
+#include <util/logging.hpp>
#include <util/path.hpp>
#include <util/string.hpp>
#include <util/wincompat.hpp>
#include "Context.hpp"
#include "Depfile.hpp"
#include "Hash.hpp"
-#include "Logging.hpp"
#include "MiniTrace.hpp"
#include "SignalHandler.hpp"
#include "Util.hpp"
#include <util/file.hpp>
#include <util/filesystem.hpp>
#include <util/fmtmacros.hpp>
+#include <util/logging.hpp>
#include <util/path.hpp>
#include <util/process.hpp>
#include <util/string.hpp>
// Dump log buffer last to not lose any logs.
if (ctx.config.debug() && !ctx.args_info.output_obj.empty()) {
- Logging::dump_log(prepare_debug_path(ctx.config.debug_dir(),
- ctx.time_of_invocation,
- ctx.args_info.output_obj,
- "log"));
+ util::logging::dump_log(prepare_debug_path(ctx.config.debug_dir(),
+ ctx.time_of_invocation,
+ ctx.args_info.output_obj,
+ "log"));
}
}
#include "CacheEntry.hpp"
-#include <Logging.hpp>
#include <ccache.hpp>
#include <core/CacheEntryDataReader.hpp>
#include <core/CacheEntryDataWriter.hpp>
#include <util/expected.hpp>
#include <util/file.hpp>
#include <util/fmtmacros.hpp>
+#include <util/logging.hpp>
#include <util/zstd.hpp>
#include <cstring>
#include <Context.hpp>
#include <Hash.hpp>
-#include <Logging.hpp>
#include <core/CacheEntryDataReader.hpp>
#include <core/CacheEntryDataWriter.hpp>
#include <core/exceptions.hpp>
#include <hashutil.hpp>
#include <util/XXH3_64.hpp>
#include <util/fmtmacros.hpp>
+#include <util/logging.hpp>
#include <util/string.hpp>
// Manifest data format
#include "Config.hpp"
#include "Context.hpp"
-#include "Logging.hpp"
#include "Util.hpp"
#include <ccache.hpp>
#include <util/expected.hpp>
#include <util/file.hpp>
#include <util/fmtmacros.hpp>
+#include <util/logging.hpp>
#include <util/path.hpp>
#include <util/string.hpp>
#include <util/wincompat.hpp>
#include "ResultInspector.hpp"
#include "Context.hpp"
-#include "Logging.hpp"
#include <util/fmtmacros.hpp>
+#include <util/logging.hpp>
namespace core {
#include "Context.hpp"
#include "Depfile.hpp"
-#include "Logging.hpp"
#include <Context.hpp>
#include <Util.hpp>
#include <util/expected.hpp>
#include <util/file.hpp>
#include <util/fmtmacros.hpp>
+#include <util/logging.hpp>
#include <util/path.hpp>
#include <util/string.hpp>
#include <util/wincompat.hpp>
#include "Statistics.hpp"
#include <Config.hpp>
-#include <Logging.hpp>
#include <Util.hpp>
#include <util/TextTable.hpp>
#include <util/fmtmacros.hpp>
+#include <util/logging.hpp>
#include <util/string.hpp>
#include <util/time.hpp>
#include "StatsLog.hpp"
-#include <Logging.hpp>
#include <core/Statistics.hpp>
#include <util/FileStream.hpp>
#include <util/fmtmacros.hpp>
+#include <util/logging.hpp>
#include <fstream>
#include <Config.hpp>
#include <Hash.hpp>
#include <InodeCache.hpp>
-#include <Logging.hpp>
#include <ProgressBar.hpp>
#include <Util.hpp>
#include <ccache.hpp>
#include <util/expected.hpp>
#include <util/file.hpp>
#include <util/fmtmacros.hpp>
+#include <util/logging.hpp>
#include <util/string.hpp>
#include <fcntl.h>
!= -1) {
Config config;
config.read();
- Logging::init(config);
+ util::logging::init(config.debug(), config.log_file());
util::UmaskScope umask_scope(config.umask());
#include "Config.hpp"
#include "Context.hpp"
-#include "Logging.hpp"
#include "SignalHandler.hpp"
#include "Util.hpp"
#include <util/file.hpp>
#include <util/filesystem.hpp>
#include <util/fmtmacros.hpp>
+#include <util/logging.hpp>
#include <util/path.hpp>
#include <util/string.hpp>
#include <util/wincompat.hpp>
#include "Args.hpp"
#include "Config.hpp"
#include "Context.hpp"
-#include "Logging.hpp"
#include "execute.hpp"
#include "macroskip.hpp"
#include <util/DirEntry.hpp>
#include <util/file.hpp>
#include <util/fmtmacros.hpp>
+#include <util/logging.hpp>
#include <util/string.hpp>
#include <util/time.hpp>
#include <util/wincompat.hpp>
#include "Storage.hpp"
#include <Config.hpp>
-#include <Logging.hpp>
#include <MiniTrace.hpp>
#include <Util.hpp>
#include <core/CacheEntry.hpp>
#include <storage/remote/HttpStorage.hpp>
#include <util/assertions.hpp>
#include <util/fmtmacros.hpp>
+#include <util/logging.hpp>
#ifdef HAVE_REDIS_STORAGE_BACKEND
# include <storage/remote/RedisStorage.hpp>
#endif
#include <Config.hpp>
#include <Context.hpp>
-#include <Logging.hpp>
#include <MiniTrace.hpp>
#include <Util.hpp>
#include <core/AtomicFile.hpp>
#include <util/file.hpp>
#include <util/filesystem.hpp>
#include <util/fmtmacros.hpp>
+#include <util/logging.hpp>
#include <util/process.hpp>
#include <util/string.hpp>
#include <util/wincompat.hpp>
#include "StatsFile.hpp"
-#include <Logging.hpp>
#include <core/AtomicFile.hpp>
#include <core/exceptions.hpp>
#include <util/LockFile.hpp>
#include <util/file.hpp>
#include <util/fmtmacros.hpp>
+#include <util/logging.hpp>
namespace storage::local {
#include "FileStorage.hpp"
-#include <Logging.hpp>
#include <Util.hpp>
#include <core/AtomicFile.hpp>
#include <core/exceptions.hpp>
#include <util/file.hpp>
#include <util/filesystem.hpp>
#include <util/fmtmacros.hpp>
+#include <util/logging.hpp>
#include <util/string.hpp>
#include <sys/stat.h> // for mode_t
#include "HttpStorage.hpp"
#include <Hash.hpp>
-#include <Logging.hpp>
#include <ccache.hpp>
#include <core/exceptions.hpp>
#include <util/assertions.hpp>
#include <util/expected.hpp>
#include <util/fmtmacros.hpp>
+#include <util/logging.hpp>
#include <util/string.hpp>
#include <util/types.hpp>
#include "RedisStorage.hpp"
#include <Hash.hpp>
-#include <Logging.hpp>
#include <core/exceptions.hpp>
#include <util/assertions.hpp>
#include <util/expected.hpp>
#include <util/fmtmacros.hpp>
+#include <util/logging.hpp>
#include <util/string.hpp>
#include <util/wincompat.hpp> // for timeval
// Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
#include <Config.hpp>
-#include <Logging.hpp>
#include <util/LockFile.hpp>
#include <util/LongLivedLockFileManager.hpp>
#include <util/fmtmacros.hpp>
+#include <util/logging.hpp>
#include <util/string.hpp>
#include <memory>
}
Config config;
config.update_from_environment();
- Logging::init(config);
+ util::logging::init(config.debug(), config.log_file());
const std::string path(argv[1]);
const auto seconds = util::parse_signed(argv[2]);
error.cpp
file.cpp
filesystem.cpp
+ logging.cpp
path.cpp
process.cpp
string.cpp
#include "DirEntry.hpp"
-#include <Logging.hpp>
#include <util/Finalizer.hpp>
#include <util/file.hpp>
#include <util/fmtmacros.hpp>
+#include <util/logging.hpp>
#include <util/wincompat.hpp>
#ifdef _WIN32
#include "LockFile.hpp"
-#include "Logging.hpp"
#include "Util.hpp"
#include <util/DirEntry.hpp>
#include <util/file.hpp>
#include <util/filesystem.hpp>
#include <util/fmtmacros.hpp>
+#include <util/logging.hpp>
#include <util/process.hpp>
#include <util/wincompat.hpp>
#include "LongLivedLockFileManager.hpp"
-#include <Logging.hpp>
#include <Util.hpp>
#include <util/file.hpp>
#include <util/filesystem.hpp>
+#include <util/logging.hpp>
#include <chrono>
#include "file.hpp"
-#include <Logging.hpp>
#include <util/Bytes.hpp>
#include <util/DirEntry.hpp>
#include <util/Fd.hpp>
#include <util/file.hpp>
#include <util/filesystem.hpp>
#include <util/fmtmacros.hpp>
+#include <util/logging.hpp>
#ifdef HAVE_UNISTD_H
# include <unistd.h>
// this program; if not, write to the Free Software Foundation, Inc., 51
// Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#include "Logging.hpp"
-
#include "Config.hpp"
-#include "Util.hpp"
-#include "execute.hpp"
#include <util/FileStream.hpp>
#include <util/file.hpp>
#include <util/fmtmacros.hpp>
+#include <util/logging.hpp>
#include <util/time.hpp>
-#include <util/wincompat.hpp>
#ifdef HAVE_UNISTD_H
# include <unistd.h>
} // namespace
-namespace Logging {
+namespace util::logging {
// Initialize logging. Call only once.
void
-init(const Config& config)
+init(bool debug, const std::string& log_file)
{
- debug_log_enabled = config.debug();
+ debug_log_enabled = debug;
#ifdef HAVE_SYSLOG
- if (config.log_file() == "syslog") {
+ if (log_file == "syslog") {
use_syslog = true;
openlog("ccache", LOG_PID, LOG_USER);
return; // Don't open logfile
}
#endif
- if (!config.log_file().empty()) {
- logfile_path = config.log_file();
+ if (!log_file.empty()) {
+ logfile_path = log_file;
logfile.open(logfile_path, "a");
if (logfile) {
util::set_cloexec_flag(fileno(*logfile));
}
}
-} // namespace Logging
+} // namespace util::logging
#include <third_party/fmt/format.h>
#include <third_party/fmt/std.h>
-#include <optional>
#include <string>
#include <string_view>
-#include <utility>
// Log a raw message (plus a newline character).
#define LOG_RAW(message_) \
do { \
- if (Logging::enabled()) { \
- Logging::log(std::string_view(message_)); \
+ if (util::logging::enabled()) { \
+ util::logging::log(std::string_view(message_)); \
} \
} while (false)
// is checked at compile time.
#define BULK_LOG(format_, ...) \
do { \
- if (Logging::enabled()) { \
- Logging::bulk_log(fmt::format(FMT_STRING(format_), __VA_ARGS__)); \
+ if (util::logging::enabled()) { \
+ util::logging::bulk_log(fmt::format(FMT_STRING(format_), __VA_ARGS__)); \
} \
} while (false)
class Config;
-namespace Logging {
+namespace util::logging {
// Initialize global logging state. Must be called once before using the other
// logging functions.
-void init(const Config& config);
+void init(bool debug, const std::string& log_file);
// Return whether logging is enabled to at least one destination.
bool enabled();
// timestamp.
void bulk_log(std::string_view message);
-// Write the current log memory buffer `path`.
+// Write the current log memory buffer to `path`.
void dump_log(const std::string& path);
-} // namespace Logging
+} // namespace util::logging