summaryrefslogtreecommitdiff
path: root/FS/FS/Trace.pm
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2012-08-03 10:51:55 -0700
committerIvan Kohler <ivan@freeside.biz>2012-08-03 10:51:55 -0700
commitc573de444fba4ff9a42127b4cfe97b85d1f89b70 (patch)
treeb84b7290eb881c68d5df5c8a7c387bb9526178ae /FS/FS/Trace.pm
parentaa59ea407bdb0368f0dcb36d48b69cdabf44da41 (diff)
request tracing, RT#18719
Diffstat (limited to 'FS/FS/Trace.pm')
-rw-r--r--FS/FS/Trace.pm35
1 files changed, 35 insertions, 0 deletions
diff --git a/FS/FS/Trace.pm b/FS/FS/Trace.pm
new file mode 100644
index 000000000..9ff39dd26
--- /dev/null
+++ b/FS/FS/Trace.pm
@@ -0,0 +1,35 @@
+package FS::Trace;
+
+use strict;
+use Date::Format;
+use File::Slurp;
+
+my @trace = ();
+
+sub log {
+ my( $class, $msg ) = @_;
+ push @trace, [ time, "[$$][". time2str('%r', time). "] $msg" ];
+}
+
+sub total {
+ $trace[-1]->[0] - $trace[0]->[0];
+}
+
+sub reset {
+ @trace = ();
+}
+
+sub dump_ary {
+ map $_->[1], @trace;
+}
+
+sub dump {
+ join("\n", map $_->[1], @trace). "\n";
+}
+
+sub dumpfile {
+ my( $class, $filename, $header ) = @_;
+ write_file( $filename, "$header\n". $class->dump );
+}
+
+1;