diff options
author | Andrew Bardsley <Andrew.Bardsley@arm.com> | 2014-10-16 05:49:53 -0400 |
---|---|---|
committer | Andrew Bardsley <Andrew.Bardsley@arm.com> | 2014-10-16 05:49:53 -0400 |
commit | 960935a5bd31b0a325285beb1deb816429c7fe00 (patch) | |
tree | fcd7159f26be72be63bc49242a7648c613232830 /src/python/swig | |
parent | a2d246b6b8379f9a74dbc56feefc155f615b5ea4 (diff) | |
download | gem5-960935a5bd31b0a325285beb1deb816429c7fe00.tar.xz |
base: Reimplement the DPRINTF mechanism in a Logger class
This patch adds a Logger class encapsulating dprintf. This allows
variants of DPRINTF logging to be constructed and substituted in
place of the default behaviour.
The Logger provides a logMessage(when, name, format, ...) member
function like Trace::dprintf and a getOstream member function to
use a raw ostream for logging.
A class OstreamLogger is provided which generates the customary
debugging output with Trace::OstreamLogger::logMessage being the
old Trace::dprintf.
Diffstat (limited to 'src/python/swig')
-rw-r--r-- | src/python/swig/trace.i | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/python/swig/trace.i b/src/python/swig/trace.i index 3b049a3d6..6525b3e51 100644 --- a/src/python/swig/trace.i +++ b/src/python/swig/trace.i @@ -33,17 +33,25 @@ %{ #include "base/trace.hh" #include "base/types.hh" +#include "base/output.hh" inline void output(const char *filename) { - Trace::setOutput(filename); + std::ostream *file_stream = simout.find(filename); + + if (!file_stream) + file_stream = simout.create(filename); + + Trace::setDebugLogger(new Trace::OstreamLogger(*file_stream)); } inline void ignore(const char *expr) { - Trace::ignore.setExpression(expr); + ObjectMatch ignore(expr); + + Trace::getDebugLogger()->setIgnore(ignore); } using Trace::enabled; |