]> git.neil.brown.name Git - lafs-utils.git/commitdiff
Add trace command to adjust tracing level
authorNeilBrown <neilb@suse.de>
Fri, 25 Mar 2011 22:03:32 +0000 (09:03 +1100)
committerNeilBrown <neilb@suse.de>
Fri, 25 Mar 2011 22:03:32 +0000 (09:03 +1100)
Signed-off-by: NeilBrown <neilb@suse.de>
tools/lafs.c

index dc62aa74fbe7b53b27c02de4c71ee201e6e80418..6e5735d2f1cecfbd65f368eebb9c22c4a0a029ff 100644 (file)
@@ -1648,6 +1648,33 @@ static void c_flush(struct state *st, void **args)
                printf("Inode %d flushed\n", (int)inode->inum);
 }
 
+/****** TRACE ******/
+static char help_trace[] = "Control internal tracing";
+static struct args args_trace[] = {
+       { "LEVEL", opaque, -1, {NULL}, "New tracing verbosity level"},
+       TERMINAL_ARG
+};
+static void c_trace(struct state *st, void **args)
+{
+       char *levelstr = args[1];
+       int level = 1;
+       extern int lafs_trace_level;
+       int old = lafs_trace_level;
+       if (levelstr) {
+               if (get_int(levelstr, &level) < 0) {
+                       printf("trace: %s not a valid number\n", levelstr);
+                       return;
+               }
+       }
+       if (st->verbose) {
+               if (level == old)
+                       printf("Tracing unchanged at %d\n", old);
+               else
+                       printf("Tracing change from %d to %d\n", old, level);
+       }
+       lafs_trace_level = level;
+}
+
 /***********************************************************/
 /* list of all commands - preferably in alphabetical order */
 #define CMD(x) {#x, c_##x, args_##x, help_##x}
@@ -1665,6 +1692,7 @@ static struct cmd lafs_cmds[] = {
        CMD(reset),
        CMD(show),
        CMD(store),
+       CMD(trace),
        CMD(write),
        { NULL, NULL, NULL, NULL}
 };