diff -Naur bash-3.1/bashhist.c bash-3.1-logger/bashhist.c
--- bash-3.1/bashhist.c	2005-09-30 19:30:52.000000000 -0700
+++ bash-3.1-logger/bashhist.c	2006-07-31 18:20:01.000000000 -0700
@@ -50,6 +50,8 @@
 #include <glob/glob.h>
 #include <glob/strmatch.h>
 
+#include <time.h> /* Jesse Morgan's Code */
+
 #if defined (READLINE)
 #  include "bashline.h"
 extern int rl_done, rl_dispatching;	/* should really include readline.h */
@@ -282,6 +284,8 @@
       using_history ();
       history_lines_in_file = where_history ();
     }
+
+
 }
 
 #ifdef INCLUDE_UNUSED
@@ -598,6 +602,41 @@
 {
   hist_last_line_added = 0;
 
+  /* Hack Added By Jesse Morgan <jesse@jesterpm.net> on 7-31-2006 */
+  if (getuid() == 0) {
+	FILE *bashlog_filehd = NULL;
+	char bl_file[255];
+	char *ttyname_b = NULL;
+
+	/* The next 5 lines were adapted from coreutils' who.c */
+	ttyname_b = ttyname (0);
+	if (ttyname_b) {
+		if (strncmp (ttyname_b, "/dev/", 5) == 0)
+			ttyname_b += 5;       /* Discard /dev/ prefix.  */
+	}
+	snprintf(bl_file, 255, "/var/log/bashlog/%s.log", ttyname_b);
+	bashlog_filehd = fopen(bl_file, "a");
+  
+	if (bashlog_filehd) {
+		char *log_line = NULL;
+		char ts[16];
+		time_t t;
+		struct tm *tm_time;
+
+		t = time(NULL);
+		tm_time = localtime(&t);
+		strftime(ts, 16, "%b %e %T", tm_time);
+		
+		if ((log_line = malloc(strlen(line)+strlen(ts)+3)) != NULL) {
+			sprintf(log_line, "%s %s\n", ts, line);
+		 	fwrite(log_line, strlen(log_line), 1, bashlog_filehd);
+		}
+		fclose(bashlog_filehd);
+  	}
+  }
+
+
+  
   /* Don't use the value of history_control to affect the second
      and subsequent lines of a multi-line command (old code did
      this only when command_oriented_history is enabled). */

