stub_debug.cc
Go to the documentation of this file.
1/*
2 * Copyright (C) 1996-2023 The Squid Software Foundation and contributors
3 *
4 * Squid software is distributed under GPLv2+ license and includes
5 * contributions from numerous individuals and organizations.
6 * Please see the COPYING and CONTRIBUTORS files for details.
7 */
8
9/*
10 * A stub implementation of the Debug.h API.
11 * For use by test binaries which do not need the full context debugging
12 *
13 * Note: it doesn't use the STUB API as the functions defined here must
14 * not abort the unit test.
15 */
16#include "squid.h"
17#include "debug/Stream.h"
18
19#define STUB_API "debug/libdebug.la"
20#include "tests/STUB.h"
21
23char *Debug::cache_log= nullptr;
26int Debug::override_X = 0;
27bool Debug::log_syslog = false;
29
30void ResyncDebugLog(FILE *) STUB
31
32FILE *
34{
35 return stderr;
36}
37
38void
40{}
41
42void
43Debug::FormatStream(std::ostream &buf)
44{
45 const static std::ostringstream cleanStream;
46 buf.flags(cleanStream.flags() | std::ios::fixed);
47 buf.width(cleanStream.width());
48 buf.precision(2);
49 buf.fill(' ');
50}
51
52void
53Debug::LogMessage(const Context &context)
54{
55 if (context.level > DBG_IMPORTANT)
56 return;
57
58 if (!stderr)
59 return;
60
61 fprintf(stderr, "%s| %s\n",
62 "stub time", // debugLogTime(current_time),
63 context.buf.str().c_str());
64}
65
66std::ostream &
67Debug::Extra(std::ostream &os)
68{
69 FormatStream(os);
70 os << "\n ";
71 return os;
72}
73
75void Debug::PrepareToDie() STUB
76
77void
78Debug::parseOptions(char const *)
79{}
80
82
83Debug::Context::Context(const int aSection, const int aLevel):
84 section(aSection),
85 level(aLevel),
86 sectionLevel(Levels[aSection]),
87 upper(Current),
88 forceAlert(false)
89{
90 FormatStream(buf);
91}
92
93std::ostringstream &
94Debug::Start(const int section, const int level)
95{
96 Current = new Context(section, level);
97 return Current->buf;
98}
99
100void
102{
103 if (Current) {
105 delete Current;
106 Current = nullptr;
107 }
108}
109
110std::ostream&
111ForceAlert(std::ostream& s)
112{
113 return s;
114}
115
#define STUB
macro to stub a void function.
Definition: STUB.h:33
#define STUB_RETVAL(x)
Definition: STUB.h:41
meta-information for debugs() or a similar debugging call
Definition: Stream.h:52
std::ostringstream buf
debugs() output sink
Definition: Stream.h:66
Context(const int aSectionLevel, const int aLevel)
Definition: debug.cc:1274
Definition: Stream.h:47
static bool StderrEnabled()
Definition: debug.cc:726
static bool log_syslog
Definition: Stream.h:85
static Context * Current
deepest active context; nil outside debugs()
Definition: Stream.h:176
static std::ostream & Extra(std::ostream &)
Definition: debug.cc:1313
static void LogMessage(const Context &)
broadcasts debugs() message to the logging channels
Definition: debug.cc:778
static int override_X
Definition: Stream.h:84
static int Levels[MAX_DEBUG_SECTIONS]
Definition: Stream.h:83
static void Finish()
logs output buffer created in Start() and closes debugging context
Definition: debug.cc:1363
static char * debugOptions
Definition: Stream.h:80
static char * cache_log
Definition: Stream.h:81
static void FormatStream(std::ostream &)
configures default formatting for the debugging stream
Definition: debug.cc:1302
static std::ostringstream & Start(const int section, const int level)
opens debugging context and returns output buffer
Definition: debug.cc:1339
static int rotateNumber
Definition: Stream.h:82
static void ForceAlert()
configures the active debugging context to write syslog ALERT
Definition: debug.cc:1400
#define MAX_DEBUG_SECTIONS
Definition: Stream.h:34
#define DBG_IMPORTANT
Definition: Stream.h:38
FILE * DebugStream()
Definition: debug.cc:354
void ResyncDebugLog(FILE *newFile)
a hack for low-level file descriptor manipulations in ipcCreate()
Definition: debug.cc:514
void _db_rotate_log(void)
Definition: stub_debug.cc:39
std::ostream & ForceAlert(std::ostream &s)
Definition: stub_debug.cc:111

 

Introduction

Documentation

Support

Miscellaneous

Web Site Translations

Mirrors