request tracing, RT#18719
authorIvan Kohler <ivan@freeside.biz>
Fri, 3 Aug 2012 17:51:55 +0000 (10:51 -0700)
committerIvan Kohler <ivan@freeside.biz>
Fri, 3 Aug 2012 17:51:55 +0000 (10:51 -0700)
FS/FS/Trace.pm [new file with mode: 0644]

diff --git a/FS/FS/Trace.pm b/FS/FS/Trace.pm
new file mode 100644 (file)
index 0000000..9ff39dd
--- /dev/null
@@ -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;