diff options
author | pbrook <pbrook@c046a42c-6fe2-441c-8c8c-71466251a162> | 2007-06-30 13:53:24 +0000 |
---|---|---|
committer | pbrook <pbrook@c046a42c-6fe2-441c-8c8c-71466251a162> | 2007-06-30 13:53:24 +0000 |
commit | e735b91cd44e5dafb83ed4158a4c6721c0b289aa (patch) | |
tree | 5183c87b9e68977258a9de7df45e3214da36f995 | |
parent | 15f8220829f9a3e8911c81d1cdf662769987e37f (diff) | |
download | qemu-e735b91cd44e5dafb83ed4158a4c6721c0b289aa.zip qemu-e735b91cd44e5dafb83ed4158a4c6721c0b289aa.tar.gz qemu-e735b91cd44e5dafb83ed4158a4c6721c0b289aa.tar.bz2 |
Allow changing log filename.
Close logfile when logging is disabled.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3035 c046a42c-6fe2-441c-8c8c-71466251a162
-rw-r--r-- | exec.c | 13 | ||||
-rw-r--r-- | monitor.c | 7 |
2 files changed, 19 insertions, 1 deletions
@@ -152,6 +152,7 @@ static int io_mem_watch; char *logfilename = "/tmp/qemu.log"; FILE *logfile; int loglevel; +static int log_append = 0; /* statistics */ static int tlb_flush_count; @@ -1160,7 +1161,7 @@ void cpu_set_log(int log_flags) { loglevel = log_flags; if (loglevel && !logfile) { - logfile = fopen(logfilename, "w"); + logfile = fopen(logfilename, log_append ? "wa" : "w"); if (!logfile) { perror(logfilename); _exit(1); @@ -1174,12 +1175,22 @@ void cpu_set_log(int log_flags) #else setvbuf(logfile, NULL, _IOLBF, 0); #endif + log_append = 1; + } + if (!loglevel && logfile) { + fclose(logfile); + logfile = NULL; } } void cpu_set_log_filename(const char *filename) { logfilename = strdup(filename); + if (logfile) { + fclose(logfile); + logfile = NULL; + } + cpu_set_log(loglevel); } /* mask must never be zero, except for A20 change call */ @@ -406,6 +406,11 @@ static void do_screen_dump(const char *filename) vga_hw_screen_dump(filename); } +static void do_logfile(const char *filename) +{ + cpu_set_log_filename(filename); +} + static void do_log(const char *items) { int mask; @@ -1213,6 +1218,8 @@ static term_cmd_t term_cmds[] = { "device filename", "change a removable medium" }, { "screendump", "F", do_screen_dump, "filename", "save screen into PPM image 'filename'" }, + { "logfile", "s", do_logfile, + "filename", "output logs to 'filename'" }, { "log", "s", do_log, "item1[,...]", "activate logging of the specified items to '/tmp/qemu.log'" }, { "savevm", "s?", do_savevm, |