summaryrefslogtreecommitdiff
path: root/src/python
diff options
context:
space:
mode:
authorAndrew Bardsley <Andrew.Bardsley@arm.com>2014-10-16 05:49:53 -0400
committerAndrew Bardsley <Andrew.Bardsley@arm.com>2014-10-16 05:49:53 -0400
commit960935a5bd31b0a325285beb1deb816429c7fe00 (patch)
treefcd7159f26be72be63bc49242a7648c613232830 /src/python
parenta2d246b6b8379f9a74dbc56feefc155f615b5ea4 (diff)
downloadgem5-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')
-rw-r--r--src/python/swig/trace.i12
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;