Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ISC Open Source Projects
Kea
Commits
106ec83c
Commit
106ec83c
authored
May 23, 2012
by
Mukund Sivaraman
Browse files
[1704] Use LoggerImpl as a testcase for InterprocessSync
parent
cd6a1513
Changes
2
Hide whitespace changes
Inline
Side-by-side
src/lib/log/logger_impl.cc
View file @
106ec83c
...
...
@@ -15,6 +15,7 @@
#include
<iostream>
#include
<iomanip>
#include
<algorithm>
#include
<memory>
#include
<stdarg.h>
#include
<stdio.h>
...
...
@@ -38,6 +39,7 @@
// namespace: instead, all log4cplus types are explicitly qualified.
using
namespace
std
;
using
namespace
isc
::
util
;
namespace
isc
{
namespace
log
{
...
...
@@ -50,11 +52,13 @@ namespace log {
LoggerImpl
::
LoggerImpl
(
const
string
&
name
)
:
name_
(
expandLoggerName
(
name
)),
logger_
(
log4cplus
::
Logger
::
getInstance
(
name_
))
{
sync_
=
new
InterprocessSyncFile
(
"logger"
);
}
// Destructor. (Here because of virtual declaration.)
LoggerImpl
::~
LoggerImpl
()
{
delete
sync_
;
}
// Set the severity for logging.
...
...
@@ -104,6 +108,15 @@ LoggerImpl::lookupMessage(const MessageID& ident) {
void
LoggerImpl
::
outputRaw
(
const
Severity
&
severity
,
const
string
&
message
)
{
// Use a lock file for mutual exclusion from other processes to
// avoid log messages getting interspersed
auto_ptr
<
InterprocessSyncLocker
>
locker
(
sync_
->
getLocker
());
if
(
!
locker
->
lock
())
{
LOG4CPLUS_ERROR
(
logger_
,
"Unable to lock logger lockfile"
);
}
switch
(
severity
)
{
case
DEBUG
:
LOG4CPLUS_DEBUG
(
logger_
,
message
);
...
...
@@ -124,6 +137,10 @@ LoggerImpl::outputRaw(const Severity& severity, const string& message) {
case
FATAL
:
LOG4CPLUS_FATAL
(
logger_
,
message
);
}
if
(
!
locker
->
unlock
())
{
LOG4CPLUS_ERROR
(
logger_
,
"Unable to unlock logger lockfile"
);
}
}
}
// namespace log
...
...
src/lib/log/logger_impl.h
View file @
106ec83c
...
...
@@ -32,6 +32,8 @@
#include
<log/logger_level_impl.h>
#include
<log/message_types.h>
#include
<util/interprocess_sync_file.h>
namespace
isc
{
namespace
log
{
...
...
@@ -178,8 +180,9 @@ public:
}
private:
std
::
string
name_
;
///< Full name of this logger
log4cplus
::
Logger
logger_
;
///< Underlying log4cplus logger
std
::
string
name_
;
///< Full name of this logger
log4cplus
::
Logger
logger_
;
///< Underlying log4cplus logger
isc
::
util
::
InterprocessSync
*
sync_
;
};
}
// namespace log
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new 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