in modules/jpda/src/main/native/jdwp/common/agent/core/LogManager.cpp [70:115]
void STDLogManager::Init(const char* log, const char* kindFilter, const char* srcFilter)
throw(AgentException)
{
if (srcFilter != 0 && strcmp("all", srcFilter) == 0) {
srcFilter = 0; // null equvivalent to "all"
}
m_fileFilter = srcFilter;
bool hasFiles = m_fileFilter != 0;// && strstr(m_fileFilter, ".cpp") != 0;
if (kindFilter == 0 || strcmp("none", kindFilter) == 0) {
for (int i = 0; i < LOG_KIND_NUM; i++) {
m_logKinds[i] = TRACE_KIND_NONE;
}
}
else if (strcmp("all", kindFilter) == 0) {
for (int i = 0; i < LOG_KIND_NUM; i++) {
m_logKinds[i] = hasFiles ? TRACE_KIND_FILTER_FILE : TRACE_KIND_ALWAYS;
}
}
else {
for (int i = 0; i < LOG_KIND_NUM; i++) {
if (strstr(kindFilter, s_logKinds[i].name) != 0) {
m_logKinds[i] = hasFiles ? TRACE_KIND_FILTER_FILE : TRACE_KIND_ALWAYS;
}
else {
m_logKinds[i] = TRACE_KIND_NONE;
}
}
}
m_logKinds[LOG_KIND_INFO] = TRACE_KIND_ALWAYS;
m_logKinds[LOG_KIND_ERROR] = TRACE_KIND_ALWAYS;
if (log == 0) {
m_logStream = &clog;
} else {
m_logStream = new ofstream(log);
if (m_logStream == 0) {
fprintf(stderr, "Cannot open log file: %s\n", log);
m_logStream = &clog;
}
}
m_monitor = new AgentMonitor("_agent_Log");
}