Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
mariadb
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
2677c34b
Commit
2677c34b
authored
Dec 07, 2004
by
tomas@poseidon.ndb.mysql.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fixed clusterlog "filter" command
parent
e02261fe
Changes
10
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
249 additions
and
319 deletions
+249
-319
ndb/include/logger/Logger.hpp
ndb/include/logger/Logger.hpp
+1
-1
ndb/include/mgmapi/mgmapi.h
ndb/include/mgmapi/mgmapi.h
+12
-2
ndb/src/common/logger/Logger.cpp
ndb/src/common/logger/Logger.cpp
+13
-4
ndb/src/mgmapi/mgmapi.cpp
ndb/src/mgmapi/mgmapi.cpp
+64
-15
ndb/src/mgmclient/CommandInterpreter.cpp
ndb/src/mgmclient/CommandInterpreter.cpp
+145
-159
ndb/src/mgmsrv/CommandInterpreter.cpp
ndb/src/mgmsrv/CommandInterpreter.cpp
+0
-128
ndb/src/mgmsrv/CommandInterpreter.hpp
ndb/src/mgmsrv/CommandInterpreter.hpp
+0
-1
ndb/src/mgmsrv/MgmtSrvr.cpp
ndb/src/mgmsrv/MgmtSrvr.cpp
+9
-7
ndb/src/mgmsrv/MgmtSrvr.hpp
ndb/src/mgmsrv/MgmtSrvr.hpp
+1
-1
ndb/src/mgmsrv/Services.cpp
ndb/src/mgmsrv/Services.cpp
+4
-1
No files found.
ndb/include/logger/Logger.hpp
View file @
2677c34b
...
...
@@ -101,7 +101,7 @@ public:
/** The log levels. NOTE: Could not use the name LogLevel since
* it caused conflicts with another class.
*/
enum
LoggerLevel
{
LL_O
FF
,
LL_DEBUG
,
LL_INFO
,
LL_WARNING
,
LL_ERROR
,
enum
LoggerLevel
{
LL_O
N
,
LL_DEBUG
,
LL_INFO
,
LL_WARNING
,
LL_ERROR
,
LL_CRITICAL
,
LL_ALERT
,
LL_ALL
};
/**
...
...
ndb/include/mgmapi/mgmapi.h
View file @
2677c34b
...
...
@@ -244,7 +244,9 @@ extern "C" {
* Log severities (used to filter the cluster log)
*/
enum
ndb_mgm_clusterlog_level
{
NDB_MGM_CLUSTERLOG_OFF
=
0
,
/*< Cluster log off*/
NDB_MGM_ILLEGAL_CLUSTERLOG_LEVEL
=
-
1
,
/* must range from 0 and up, indexes into an array */
NDB_MGM_CLUSTERLOG_ON
=
0
,
/*< Cluster log on*/
NDB_MGM_CLUSTERLOG_DEBUG
=
1
,
/*< Used in NDB Cluster
*< developement
*/
...
...
@@ -264,7 +266,8 @@ extern "C" {
*< corrected immediately,
*< such as a corrupted system
*/
NDB_MGM_CLUSTERLOG_ALL
=
7
/*< All severities on*/
/* must be next number, works as bound in loop */
NDB_MGM_CLUSTERLOG_ALL
=
7
/*< All severities */
};
/**
...
...
@@ -580,11 +583,13 @@ extern "C" {
*
* @param handle NDB management handle.
* @param level A cluster log level to filter.
* @param enable set 1=enable 0=disable
* @param reply Reply message.
* @return -1 on error.
*/
int
ndb_mgm_filter_clusterlog
(
NdbMgmHandle
handle
,
enum
ndb_mgm_clusterlog_level
level
,
int
enable
,
struct
ndb_mgm_reply
*
reply
);
/**
...
...
@@ -620,6 +625,11 @@ extern "C" {
int
level
,
struct
ndb_mgm_reply
*
reply
);
ndb_mgm_clusterlog_level
ndb_mgm_match_clusterlog_level
(
const
char
*
name
);
const
char
*
ndb_mgm_get_clusterlog_level_string
(
enum
ndb_mgm_clusterlog_level
level
);
/**
* Set log category and levels for the Node
*
...
...
ndb/src/common/logger/Logger.cpp
View file @
2677c34b
...
...
@@ -30,7 +30,7 @@
//
// PUBLIC
//
const
char
*
Logger
::
LoggerLevelNames
[]
=
{
"O
FF
"
,
const
char
*
Logger
::
LoggerLevelNames
[]
=
{
"O
N
"
,
"DEBUG "
,
"INFO "
,
"WARNING "
,
...
...
@@ -46,7 +46,9 @@ Logger::Logger() :
m_pSyslogHandler
(
NULL
)
{
m_pHandlerList
=
new
LogHandlerList
();
m_logLevels
[
LL_INFO
]
=
true
;
disable
(
LL_ALL
);
enable
(
LL_ON
);
enable
(
LL_INFO
);
}
Logger
::~
Logger
()
...
...
@@ -227,6 +229,13 @@ Logger::removeAllHandlers()
bool
Logger
::
isEnable
(
LoggerLevel
logLevel
)
const
{
if
(
logLevel
==
LL_ALL
)
{
for
(
unsigned
i
=
1
;
i
<
MAX_LOG_LEVELS
;
i
++
)
if
(
!
m_logLevels
[
i
])
return
false
;
return
true
;
}
return
m_logLevels
[
logLevel
];
}
...
...
@@ -235,7 +244,7 @@ Logger::enable(LoggerLevel logLevel)
{
if
(
logLevel
==
LL_ALL
)
{
for
(
unsigned
i
=
1
;
i
<
MAX_LOG_LEVELS
;
i
++
)
for
(
unsigned
i
=
0
;
i
<
MAX_LOG_LEVELS
;
i
++
)
{
m_logLevels
[
i
]
=
true
;
}
...
...
@@ -337,7 +346,7 @@ Logger::debug(const char* pMsg, ...) const
void
Logger
::
log
(
LoggerLevel
logLevel
,
const
char
*
pMsg
,
va_list
ap
)
const
{
if
(
m_logLevels
[
LL_O
FF
]
==
false
&&
m_logLevels
[
logLevel
])
if
(
m_logLevels
[
LL_O
N
]
&&
m_logLevels
[
logLevel
])
{
LogHandler
*
pHandler
=
NULL
;
while
(
(
pHandler
=
m_pHandlerList
->
next
())
!=
NULL
)
...
...
ndb/src/mgmapi/mgmapi.cpp
View file @
2677c34b
...
...
@@ -914,21 +914,67 @@ ndb_mgm_restart(NdbMgmHandle handle, int no_of_nodes, const int *node_list)
return
ndb_mgm_restart2
(
handle
,
no_of_nodes
,
node_list
,
0
,
0
,
0
);
}
static
const
char
*
clusterlog_level_names
[]
=
{
"enabled"
,
"debug"
,
"info"
,
"warning"
,
"error"
,
"critical"
,
"alert"
};
struct
ndb_mgm_clusterlog_levels
{
const
char
*
name
;
enum
ndb_mgm_clusterlog_level
level
;
}
clusterlog_levels
[]
=
{
{
clusterlog_level_names
[
0
],
NDB_MGM_CLUSTERLOG_ON
},
{
clusterlog_level_names
[
1
],
NDB_MGM_CLUSTERLOG_DEBUG
},
{
clusterlog_level_names
[
2
],
NDB_MGM_CLUSTERLOG_INFO
},
{
clusterlog_level_names
[
3
],
NDB_MGM_CLUSTERLOG_WARNING
},
{
clusterlog_level_names
[
4
],
NDB_MGM_CLUSTERLOG_ERROR
},
{
clusterlog_level_names
[
5
],
NDB_MGM_CLUSTERLOG_CRITICAL
},
{
clusterlog_level_names
[
6
],
NDB_MGM_CLUSTERLOG_ALERT
},
{
"all"
,
NDB_MGM_CLUSTERLOG_ALL
},
{
0
,
NDB_MGM_ILLEGAL_CLUSTERLOG_LEVEL
},
};
extern
"C"
ndb_mgm_clusterlog_level
ndb_mgm_match_clusterlog_level
(
const
char
*
name
)
{
if
(
name
==
0
)
return
NDB_MGM_ILLEGAL_CLUSTERLOG_LEVEL
;
for
(
int
i
=
0
;
clusterlog_levels
[
i
].
name
!=
0
;
i
++
)
if
(
strcasecmp
(
name
,
clusterlog_levels
[
i
].
name
)
==
0
)
return
clusterlog_levels
[
i
].
level
;
return
NDB_MGM_ILLEGAL_CLUSTERLOG_LEVEL
;
}
extern
"C"
const
char
*
ndb_mgm_get_clusterlog_level_string
(
enum
ndb_mgm_clusterlog_level
level
)
{
int
i
=
(
int
)
level
;
if
(
i
>=
0
&&
i
<
(
int
)
NDB_MGM_CLUSTERLOG_ALL
)
return
clusterlog_level_names
[
i
];
for
(
i
=
(
int
)
NDB_MGM_CLUSTERLOG_ALL
;
clusterlog_levels
[
i
].
name
!=
0
;
i
++
)
if
(
clusterlog_levels
[
i
].
level
==
level
)
return
clusterlog_levels
[
i
].
name
;
return
0
;
}
extern
"C"
unsigned
int
*
ndb_mgm_get_logfilter
(
NdbMgmHandle
handle
)
{
SET_ERROR
(
handle
,
NDB_MGM_NO_ERROR
,
"Executing: ndb_mgm_get_logfilter"
);
static
Uint32
enabled
[
7
]
=
{
0
,
0
,
0
,
0
,
0
,
0
,
0
};
static
Uint32
enabled
[
(
int
)
NDB_MGM_CLUSTERLOG_ALL
]
=
{
0
,
0
,
0
,
0
,
0
,
0
,
0
};
const
ParserRow
<
ParserDummy
>
getinfo_reply
[]
=
{
MGM_CMD
(
"clusterlog"
,
NULL
,
""
),
MGM_ARG
(
"enabled"
,
Int
,
Mandatory
,
""
),
MGM_ARG
(
"debug"
,
Int
,
Mandatory
,
""
),
MGM_ARG
(
"info"
,
Int
,
Mandatory
,
""
),
MGM_ARG
(
"warning"
,
Int
,
Mandatory
,
""
),
MGM_ARG
(
"error"
,
Int
,
Mandatory
,
""
),
MGM_ARG
(
"critical"
,
Int
,
Mandatory
,
""
),
MGM_ARG
(
"alert"
,
Int
,
Mandatory
,
""
),
MGM_ARG
(
clusterlog_level_names
[
0
]
,
Int
,
Mandatory
,
""
),
MGM_ARG
(
clusterlog_level_names
[
1
]
,
Int
,
Mandatory
,
""
),
MGM_ARG
(
clusterlog_level_names
[
2
]
,
Int
,
Mandatory
,
""
),
MGM_ARG
(
clusterlog_level_names
[
3
]
,
Int
,
Mandatory
,
""
),
MGM_ARG
(
clusterlog_level_names
[
4
]
,
Int
,
Mandatory
,
""
),
MGM_ARG
(
clusterlog_level_names
[
5
]
,
Int
,
Mandatory
,
""
),
MGM_ARG
(
clusterlog_level_names
[
6
]
,
Int
,
Mandatory
,
""
),
};
CHECK_HANDLE
(
handle
,
NULL
);
CHECK_CONNECTED
(
handle
,
NULL
);
...
...
@@ -938,10 +984,8 @@ ndb_mgm_get_logfilter(NdbMgmHandle handle)
reply
=
ndb_mgm_call
(
handle
,
getinfo_reply
,
"get info clusterlog"
,
&
args
);
CHECK_REPLY
(
reply
,
NULL
);
const
char
*
names
[]
=
{
"enabled"
,
"debug"
,
"info"
,
"warning"
,
"error"
,
"critical"
,
"alert"
};
for
(
int
i
=
0
;
i
<
7
;
i
++
)
{
reply
->
get
(
names
[
i
],
&
enabled
[
i
]);
for
(
int
i
=
0
;
i
<
(
int
)
NDB_MGM_CLUSTERLOG_ALL
;
i
++
)
{
reply
->
get
(
clusterlog_level_names
[
i
],
&
enabled
[
i
]);
}
return
enabled
;
}
...
...
@@ -950,6 +994,7 @@ extern "C"
int
ndb_mgm_filter_clusterlog
(
NdbMgmHandle
handle
,
enum
ndb_mgm_clusterlog_level
level
,
int
enable
,
struct
ndb_mgm_reply
*
/*reply*/
)
{
SET_ERROR
(
handle
,
NDB_MGM_NO_ERROR
,
"Executing: ndb_mgm_filter_clusterlog"
);
...
...
@@ -964,6 +1009,7 @@ ndb_mgm_filter_clusterlog(NdbMgmHandle handle,
Properties
args
;
args
.
put
(
"level"
,
level
);
args
.
put
(
"enable"
,
enable
);
const
Properties
*
reply
;
reply
=
ndb_mgm_call
(
handle
,
filter_reply
,
"set logfilter"
,
&
args
);
...
...
@@ -971,11 +1017,14 @@ ndb_mgm_filter_clusterlog(NdbMgmHandle handle,
BaseString
result
;
reply
->
get
(
"result"
,
result
);
if
(
strcmp
(
result
.
c_str
(),
"1"
)
==
0
)
{
if
(
strcmp
(
result
.
c_str
(),
"1"
)
==
0
)
retval
=
1
;
else
if
(
strcmp
(
result
.
c_str
(),
"0"
)
==
0
)
retval
=
0
;
}
else
{
else
{
SET_ERROR
(
handle
,
EINVAL
,
result
.
c_str
());
retval
=
-
1
;
}
delete
reply
;
return
retval
;
...
...
ndb/src/mgmclient/CommandInterpreter.cpp
View file @
2677c34b
This diff is collapsed.
Click to expand it.
ndb/src/mgmsrv/CommandInterpreter.cpp
View file @
2677c34b
...
...
@@ -157,10 +157,6 @@ int CommandInterpreter::readAndExecute() {
executeShow
(
allAfterFirstToken
);
return
true
;
}
else
if
(
strcmp
(
firstToken
,
"CLUSTERLOG"
)
==
0
)
{
executeClusterLog
(
allAfterFirstToken
);
return
true
;
}
else
if
(
strcmp
(
firstToken
,
"START"
)
==
0
&&
allAfterFirstToken
!=
0
&&
strncmp
(
allAfterFirstToken
,
"BACKUP"
,
sizeof
(
"BACKUP"
)
-
1
)
==
0
){
...
...
@@ -472,130 +468,6 @@ void CommandInterpreter::executeShow(char* parameters) {
}
}
//*****************************************************************************
//*****************************************************************************
void
CommandInterpreter
::
executeClusterLog
(
char
*
parameters
)
{
if
(
parameters
!=
0
&&
strlen
(
parameters
)
!=
0
)
{
int
severity
=
7
;
int
isOk
=
true
;
char
name
[
12
];
bool
noArgs
=
false
;
char
*
tmpString
=
strdup
(
parameters
);
char
*
tmpPtr
=
0
;
char
*
item
=
strtok_r
(
tmpString
,
" "
,
&
tmpPtr
);
/********************
* CLUSTERLOG FILTER
********************/
if
(
strcmp
(
item
,
"FILTER"
)
==
0
)
{
item
=
strtok_r
(
NULL
,
" "
,
&
tmpPtr
);
if
(
item
==
NULL
)
{
noArgs
=
true
;
}
while
(
item
!=
NULL
)
{
snprintf
(
name
,
12
,
item
);
if
(
strcmp
(
item
,
"ALL"
)
==
0
)
{
severity
=
7
;
}
else
if
(
strcmp
(
item
,
"ALERT"
)
==
0
)
{
severity
=
6
;
}
else
if
(
strcmp
(
item
,
"CRITICAL"
)
==
0
)
{
severity
=
5
;
}
else
if
(
strcmp
(
item
,
"ERROR"
)
==
0
)
{
severity
=
4
;
}
else
if
(
strcmp
(
item
,
"WARNING"
)
==
0
)
{
severity
=
3
;
}
else
if
(
strcmp
(
item
,
"INFO"
)
==
0
)
{
severity
=
2
;
}
else
if
(
strcmp
(
item
,
"DEBUG"
)
==
0
)
{
severity
=
1
;
}
else
if
(
strcmp
(
item
,
"OFF"
)
==
0
)
{
severity
=
0
;
}
else
{
isOk
=
false
;
}
item
=
strtok_r
(
NULL
,
" "
,
&
tmpPtr
);
}
// while(item != NULL){
free
(
tmpString
);
if
(
noArgs
)
{
ndbout
<<
"Missing argument(s)."
<<
endl
;
}
else
if
(
isOk
)
{
if
(
_mgmtSrvr
.
setEventLogFilter
(
severity
))
{
if
(
strcmp
(
name
,
"ALL"
)
==
0
||
strcmp
(
name
,
"all"
)
==
0
)
{
ndbout
<<
"All severities levels enabled."
<<
endl
;
}
else
if
(
strcmp
(
name
,
"OFF"
)
==
0
||
strcmp
(
name
,
"off"
)
==
0
)
{
ndbout
<<
"Cluster logging disabled."
<<
endl
;
}
else
{
ndbout
<<
name
<<
" events enabled."
<<
endl
;
}
}
else
{
if
(
strcmp
(
name
,
"ALL"
)
==
0
)
{
ndbout
<<
"All severities levels disabled."
<<
endl
;
}
else
if
(
strcmp
(
name
,
"OFF"
)
==
0
)
{
ndbout
<<
"Cluster logging enabled."
<<
endl
;
}
else
{
ndbout
<<
name
<<
" events disabled."
<<
endl
;
}
}
}
else
{
ndbout
<<
"Invalid severity level."
<<
endl
;
}
/********************
* CLUSTERLOG INFO
********************/
}
else
if
(
strcmp
(
item
,
"INFO"
)
==
0
)
{
const
char
*
names
[]
=
{
"DEBUG"
,
"INFO"
,
"WARNING"
,
"ERROR"
,
"CRITICAL"
,
"ALERT"
};
if
(
_mgmtSrvr
.
isEventLogFilterEnabled
(
0
))
{
// OFF
ndbout
<<
"Cluster logging is disabled."
<<
endl
;
}
ndbout
<<
"Severities enabled: "
;
for
(
int
i
=
0
;
i
<
6
;
i
++
)
{
if
(
_mgmtSrvr
.
isEventLogFilterEnabled
(
i
+
1
))
{
ndbout
<<
names
[
i
]
<<
" "
;
}
}
ndbout
<<
endl
;
/********************
* CLUSTERLOG OFF
********************/
}
else
if
(
strcmp
(
item
,
"OFF"
)
==
0
)
{
if
(
!
_mgmtSrvr
.
isEventLogFilterEnabled
(
0
))
{
// ON
if
(
_mgmtSrvr
.
setEventLogFilter
(
0
));
ndbout
<<
"Cluster logging is disabled."
<<
endl
;
}
else
{
ndbout
<<
"Cluster logging is already disabled."
<<
endl
;
}
/********************
* CLUSTERLOG ON
********************/
}
else
if
(
strcmp
(
item
,
"ON"
)
==
0
)
{
if
(
_mgmtSrvr
.
isEventLogFilterEnabled
(
0
))
{
// OFF
if
(
_mgmtSrvr
.
setEventLogFilter
(
0
));
ndbout
<<
"Cluster logging is enabled."
<<
endl
;
}
else
{
ndbout
<<
"Cluster logging is already enabled."
<<
endl
;
}
}
else
{
ndbout
<<
"Invalid argument."
<<
endl
;
}
}
else
{
ndbout
<<
"Missing argument."
<<
endl
;
}
}
void
stopCallback
(
int
nodeId
,
void
*
anyData
,
int
errCode
){
if
(
errCode
==
0
){
...
...
ndb/src/mgmsrv/CommandInterpreter.hpp
View file @
2677c34b
...
...
@@ -125,7 +125,6 @@ private:
void
executeShow
(
char
*
parameters
);
void
executeRun
(
char
*
parameters
);
void
executeInfo
(
char
*
parameters
);
void
executeClusterLog
(
char
*
parameters
);
public:
void
executeStop
(
int
processId
,
const
char
*
parameters
,
bool
all
);
...
...
ndb/src/mgmsrv/MgmtSrvr.cpp
View file @
2677c34b
...
...
@@ -226,7 +226,8 @@ MgmtSrvr::startEventLog()
clusterLog
);
}
if
(
!
g_EventLogger
.
addHandler
(
logdest
))
{
ndbout
<<
"Warning: could not add log destination
\"
"
<<
logdest
.
c_str
()
<<
"
\"
"
<<
endl
;
ndbout
<<
"Warning: could not add log destination
\"
"
<<
logdest
.
c_str
()
<<
"
\"
"
<<
endl
;
}
}
...
...
@@ -244,18 +245,19 @@ public:
};
bool
MgmtSrvr
::
setEventLogFilter
(
int
severity
)
MgmtSrvr
::
setEventLogFilter
(
int
severity
,
int
enable
)
{
bool
enabled
=
true
;
Logger
::
LoggerLevel
level
=
(
Logger
::
LoggerLevel
)
severity
;
if
(
g_EventLogger
.
isEnable
(
level
))
{
if
(
enable
>
0
)
{
g_EventLogger
.
enable
(
level
);
}
else
if
(
enable
==
0
)
{
g_EventLogger
.
disable
(
level
);
}
else
if
(
g_EventLogger
.
isEnable
(
level
))
{
g_EventLogger
.
disable
(
level
);
enabled
=
false
;
}
else
{
g_EventLogger
.
enable
(
level
);
}
return
enabled
;
return
g_EventLogger
.
isEnable
(
level
);
}
bool
...
...
ndb/src/mgmsrv/MgmtSrvr.hpp
View file @
2677c34b
...
...
@@ -122,7 +122,7 @@ public:
* @param serverity the log level/serverity.
* @return true if the severity was enabled.
*/
bool
setEventLogFilter
(
int
severity
);
bool
setEventLogFilter
(
int
severity
,
int
enable
);
/**
* Returns true if the log level/severity is enabled.
...
...
ndb/src/mgmsrv/Services.cpp
View file @
2677c34b
...
...
@@ -217,6 +217,7 @@ ParserRow<MgmApiSession> commands[] = {
MGM_CMD
(
"set logfilter"
,
&
MgmApiSession
::
setLogFilter
,
""
),
MGM_ARG
(
"level"
,
Int
,
Mandatory
,
"Severety level"
),
MGM_ARG
(
"enable"
,
Int
,
Mandatory
,
"1=disable, 0=enable, -1=toggle"
),
MGM_CMD
(
"config lock"
,
&
MgmApiSession
::
configLock
,
""
),
...
...
@@ -1190,10 +1191,12 @@ void
MgmApiSession
::
setLogFilter
(
Parser_t
::
Context
&
ctx
,
const
class
Properties
&
args
)
{
Uint32
level
;
Uint32
enable
;
args
.
get
(
"level"
,
&
level
);
args
.
get
(
"enable"
,
&
enable
);
int
result
=
m_mgmsrv
.
setEventLogFilter
(
level
);
int
result
=
m_mgmsrv
.
setEventLogFilter
(
level
,
enable
);
m_output
->
println
(
"set logfilter reply"
);
m_output
->
println
(
"result: %d"
,
result
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment