MCPcopy Create free account
hub / github.com/CobaltFusion/DebugViewPP / LogMessages

Function LogMessages

DebugViewConsole/DebugViewConsole.cpp:76–140  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

74}
75
76void LogMessages(Settings settings)
77{
78 using namespace std::chrono_literals;
79
80 ActiveExecutorClient executor;
81 LogSources logsources(executor);
82 executor.Call([&] {
83 logsources.AddDBWinReader(false);
84 if (HasGlobalDBWinReaderRights())
85 logsources.AddDBWinReader(true);
86 logsources.SetAutoNewLine(settings.autonewline);
87 });
88
89 std::ofstream fs;
90
91 if (!settings.filename.empty())
92 {
93 OpenLogFile(fs, WStr(settings.filename));
94 fs.flush();
95 }
96
97 auto guard = make_guard([&fs, &settings]()
98 {
99 if (!settings.filename.empty())
100 {
101 fs.flush();
102 fs.close();
103 std::cout << "Log file closed.\n";
104 }
105 });
106
107 std::string separator = settings.tabs ? "\t" : " ";
108 while (!g_quit)
109 {
110 Lines lines;
111 executor.Call([&] {
112 lines = logsources.GetLines();
113 });
114 int linenumber = 0;
115 for (auto& line : lines)
116 {
117 if (settings.console)
118 {
119 if (settings.linenumber)
120 {
121 ++linenumber;
122 std::cout << std::setw(5) << std::setfill('0') << linenumber << std::setfill(' ') << separator;
123 }
124 OutputDetails(settings, line);
125 std::cout << separator << line.message.c_str() << "\n";
126 }
127 if (!settings.filename.empty())
128 {
129 WriteLogFileMessage(fs, line.time, line.systemTime, line.pid, line.processName, line.message);
130 }
131 }
132 if (settings.flush)
133 {

Callers 1

mainFunction · 0.85

Calls 11

OpenLogFileFunction · 0.85
WStrClass · 0.85
make_guardFunction · 0.85
OutputDetailsFunction · 0.85
WriteLogFileMessageFunction · 0.85
AddDBWinReaderMethod · 0.80
CallMethod · 0.45
SetAutoNewLineMethod · 0.45
GetLinesMethod · 0.45
c_strMethod · 0.45

Tested by

no test coverage detected