148 .
name =
"infologger",
150 auto infoLoggerMode = options.GetPropertyAsString(
"infologger-mode");
151 auto infoLoggerSeverity = options.GetPropertyAsString(
"infologger-severity");
152 if (infoLoggerSeverity.empty() ==
false && options.GetPropertyAsString(
"infologger-mode") ==
"") {
153 LOGP(info,
"Using O2_INFOLOGGER_MODE=infoLoggerD since infologger-severity is set");
154 infoLoggerMode =
"infoLoggerD";
156 if (infoLoggerMode !=
"") {
157 setenv(
"O2_INFOLOGGER_MODE", infoLoggerMode.c_str(), 1);
159 char const* infoLoggerEnv = getenv(
"O2_INFOLOGGER_MODE");
160 if (infoLoggerEnv ==
nullptr || strcmp(infoLoggerEnv,
"none") == 0) {
163 .kind = ServiceKind::Serial,
164 .name =
"infologger"};
166 InfoLogger* infoLoggerService =
nullptr;
168 infoLoggerService =
new InfoLogger;
170 LOGP(error,
"Unable to initialise InfoLogger with O2_INFOLOGGER_MODE={}.", infoLoggerMode);
173 .kind = ServiceKind::Serial,
174 .name =
"infologger"};
176 auto infoLoggerContext = &services.
get<InfoLoggerContext>();
179 auto truncate = [](std::string in) -> std::string {
180 if (in.size() < 32) {
184 memcpy(
name, in.data(), 10);
188 memcpy(
name + 13, in.data() + in.size() - 18, 18);
193 infoLoggerContext->setField(InfoLoggerContext::FieldName::System, std::string(
"DPL"));
194 infoLoggerService->setContext(*infoLoggerContext);
196 if (infoLoggerSeverity !=
"") {
197 fair::Logger::AddCustomSink(
"infologger", infoLoggerSeverity,
createInfoLoggerSinkHelper(infoLoggerService, infoLoggerContext));
200 .instance = infoLoggerService,
201 .kind = ServiceKind::Serial,
202 .name =
"infologger"};
205 .kind = ServiceKind::Serial};