blob: f3a2bb95a1e016ff141f9228cad28bd5e80a26fa (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
// file : bbot/diagnostics.cxx -*- C++ -*-
// copyright : Copyright (c) 2014-2017 Code Synthesis Ltd
// license : TBC; see accompanying LICENSE file
#include <bbot/diagnostics.hxx>
#include <bbot/utility.hxx>
using namespace std;
using namespace butl;
namespace bbot
{
// Diagnostics verbosity level.
//
uint16_t verb;
// Diagnostic facility, project specifics.
//
void simple_prologue_base::
operator() (const diag_record& r) const
{
if (type_ != nullptr)
r << type_;
if (name_ != nullptr)
r << name_ << ": ";
}
const char* trace_type = "trace: ";
const char* trace_indent = "\n ";
trace_mark_base::
trace_mark_base (const char* name, const void* data)
: basic_mark_base (trace_type, trace_indent, name, data)
{
}
basic_mark error ("error: ");
basic_mark warn ("warning: ");
basic_mark info ("info: ");
basic_mark text (nullptr);
fail_mark fail ("error: ");
const fail_end endf;
// Right arrow followed by newline.
//
const char systemd_indent[] = "\xE2\x86\xB2\n";
void
systemd_diagnostics (bool with_critical)
{
trace_indent =
fail.indent_ =
error.indent_ =
warn.indent_ =
info.indent_ =
text.indent_ = systemd_indent;
fail.type_ = with_critical ? "<2>" : "<3>";
error.type_ = "<3>";
warn.type_ = "<4>";
info.type_ = "<6>";
trace_type = "<7>";
}
}
|