mirror of
https://github.com/owasp-modsecurity/ModSecurity.git
synced 2025-09-29 19:24:29 +03:00
DebugLogs are now being redirected to the correct files
This commit is contained in:
@@ -14,8 +14,6 @@
|
||||
*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
#include <iostream>
|
||||
#include <fstream>
|
||||
#include <string>
|
||||
#endif
|
||||
|
||||
@@ -32,39 +30,25 @@ typedef struct DebugLog_t DebugLog;
|
||||
namespace ModSecurity {
|
||||
|
||||
/** @ingroup ModSecurity_CPP_API */
|
||||
class DebugLog : public std::ofstream {
|
||||
class DebugLog {
|
||||
public:
|
||||
/*
|
||||
static ModSecurityDebugLog& instance() {
|
||||
static ModSecurityDebugLog i;
|
||||
return i;
|
||||
}
|
||||
*/
|
||||
DebugLog()
|
||||
: m_is_configured(false),
|
||||
m_debug_level(0),
|
||||
m_referenceCount(0) { }
|
||||
: m_debugLevel(-1),
|
||||
m_fileName("") { }
|
||||
|
||||
bool setOutputFile(const std::string& file);
|
||||
virtual bool write_log(int level, const std::string& data);
|
||||
bool setDebugLevel(int level);
|
||||
bool isConfigured();
|
||||
~DebugLog();
|
||||
|
||||
|
||||
|
||||
virtual DebugLog *new_instance();
|
||||
|
||||
void refCountDecreaseAndCheck(void);
|
||||
void refCountIncrease(void);
|
||||
virtual void write(int level, const std::string &msg);
|
||||
bool isLogFileSet();
|
||||
bool isLogLevelSet();
|
||||
void setDebugLogLevel(int level);
|
||||
void setDebugLogFile(const std::string &fileName);
|
||||
const std::string& getDebugLogFile();
|
||||
int getDebugLogLevel();
|
||||
|
||||
private:
|
||||
/*
|
||||
ModSecurityDebugLog(ModSecurityDebugLog const&);
|
||||
void operator=(ModSecurityDebugLog const&);
|
||||
*/
|
||||
int m_debug_level;
|
||||
bool m_is_configured;
|
||||
int m_referenceCount;
|
||||
int m_debugLevel;
|
||||
std::string m_fileName;
|
||||
};
|
||||
|
||||
} // namespace ModSecurity
|
||||
|
@@ -45,8 +45,7 @@ class Driver;
|
||||
class Rules : public RulesProperties {
|
||||
public:
|
||||
Rules()
|
||||
: debugLog(NULL),
|
||||
RulesProperties(NULL),
|
||||
: RulesProperties(new DebugLog()),
|
||||
m_referenceCount(0),
|
||||
unicode_codepage(0) {
|
||||
unicode_map_table = reinterpret_cast<int *>(
|
||||
@@ -55,8 +54,7 @@ class Rules : public RulesProperties {
|
||||
}
|
||||
|
||||
explicit Rules(DebugLog *customLog)
|
||||
: debugLog(NULL),
|
||||
m_referenceCount(0),
|
||||
: m_referenceCount(0),
|
||||
unicode_codepage(0),
|
||||
RulesProperties(customLog) {
|
||||
unicode_map_table = reinterpret_cast<int *>(
|
||||
@@ -86,7 +84,6 @@ class Rules : public RulesProperties {
|
||||
|
||||
std::ostringstream parserError;
|
||||
|
||||
DebugLog *debugLog;
|
||||
|
||||
int *unicode_map_table;
|
||||
int64_t unicode_codepage;
|
||||
|
@@ -42,7 +42,7 @@ class RulesProperties {
|
||||
public:
|
||||
RulesProperties()
|
||||
: audit_log(NULL),
|
||||
customDebugLog(NULL),
|
||||
m_debugLog(new DebugLog()),
|
||||
remoteRulesActionOnFailed(AbortOnFailedRemoteRulesAction),
|
||||
requestBodyLimit(0),
|
||||
requestBodyNoFilesLimit(0),
|
||||
@@ -51,26 +51,25 @@ class RulesProperties {
|
||||
secResponseBodyAccess(false),
|
||||
requestBodyLimitAction(ProcessPartialBodyLimitAction),
|
||||
responseBodyLimit(0),
|
||||
debugLevel(0),
|
||||
responseBodyLimitAction(ProcessPartialBodyLimitAction),
|
||||
secRuleEngine(DetectionOnlyRuleEngine) { }
|
||||
|
||||
explicit RulesProperties(DebugLog *customDebugLog)
|
||||
explicit RulesProperties(DebugLog *debugLog)
|
||||
: audit_log(NULL),
|
||||
customDebugLog(customDebugLog),
|
||||
m_debugLog(debugLog),
|
||||
remoteRulesActionOnFailed(AbortOnFailedRemoteRulesAction),
|
||||
secRequestBodyAccess(false),
|
||||
secResponseBodyAccess(false),
|
||||
debugLevel(0),
|
||||
requestBodyLimit(0),
|
||||
requestBodyLimitAction(ProcessPartialBodyLimitAction),
|
||||
requestBodyNoFilesLimit(0),
|
||||
requestBodyInMemoryLimit(0),
|
||||
secRequestBodyAccess(false),
|
||||
secResponseBodyAccess(false),
|
||||
requestBodyLimitAction(ProcessPartialBodyLimitAction),
|
||||
responseBodyLimit(0),
|
||||
responseBodyLimitAction(ProcessPartialBodyLimitAction),
|
||||
secRuleEngine(DetectionOnlyRuleEngine) { }
|
||||
|
||||
~RulesProperties() { }
|
||||
~RulesProperties() {
|
||||
delete m_debugLog;
|
||||
}
|
||||
|
||||
std::vector<Rule *> rules[7]; // ModSecurity::Phases::NUMBER_OF_PHASES
|
||||
|
||||
@@ -167,16 +166,13 @@ class RulesProperties {
|
||||
BodyLimitAction requestBodyLimitAction;
|
||||
BodyLimitAction responseBodyLimitAction;
|
||||
|
||||
DebugLog *customDebugLog;
|
||||
|
||||
bool secRequestBodyAccess;
|
||||
bool secResponseBodyAccess;
|
||||
std::string audit_log_path;
|
||||
std::string audit_log_parts;
|
||||
std::string debug_log_path;
|
||||
int debugLevel;
|
||||
std::list<std::string> components;
|
||||
|
||||
DebugLog *m_debugLog;
|
||||
|
||||
std::ostringstream parserError;
|
||||
|
||||
|
Reference in New Issue
Block a user