mirror of
https://github.com/expo/bsdiff.git
synced 2026-11-14 17:49:03 -10:00
The logger supports LOG & PLOG. It also adds a std::endl at the end of the stream so that we don't need to add it manually at the callsite. Test: run bsdiff and check the logs. Change-Id: Ice94902a501532ceaeb480c3576e752e435cab70
41 lines
1.1 KiB
C++
41 lines
1.1 KiB
C++
// Copyright 2017 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.
|
|
|
|
#ifndef _BSDIFF_LOGGING_H_
|
|
#define _BSDIFF_LOGGING_H_
|
|
|
|
#include <string.h>
|
|
|
|
#include <iostream>
|
|
#include <sstream>
|
|
|
|
// Simple error logging macro to avoid dependencies in other base libraries.
|
|
#define LOG(severity) LogMessage(__FILE__, __LINE__, #severity).stream()
|
|
|
|
// A variant of LOG that also logs the current errno value.
|
|
#define PLOG(severity) LogMessage(__FILE__, __LINE__, #severity, errno).stream()
|
|
|
|
// A temporarily scoped object used by LOG & PLOG.
|
|
class LogMessage {
|
|
public:
|
|
LogMessage(const char* file, unsigned int line, const char* severity);
|
|
|
|
LogMessage(const char* file,
|
|
unsigned int line,
|
|
const char* severity,
|
|
int error);
|
|
|
|
~LogMessage();
|
|
|
|
// Returns the stream associated with the message, the LogMessage performs
|
|
// output when it goes out of scope.
|
|
std::ostream& stream() { return stream_; }
|
|
|
|
private:
|
|
std::ostringstream stream_;
|
|
int error_; // The saved errno value.
|
|
};
|
|
|
|
#endif // _BSDIFF_LOGGING_H_
|