venti-log.3 (2314B)
1 .TH VENTI-LOG 3 2 .SH NAME 3 VtLog, 4 VtLogChunk, 5 vtlog, 6 vtlogclose, 7 vtlogdump, 8 vtlognames, 9 vtlogopen, 10 vtlogprint, 11 vtlogremove, 12 vtlogopen, 13 ventilogging \- Venti logs 14 .SH SYNOPSIS 15 .ft L 16 #include <u.h> 17 .br 18 #include <libc.h> 19 .br 20 #include <venti.h> 21 .ta +\w'\fLVtLog* 'u 22 .PP 23 .B 24 VtLog* vtlogopen(char *name, uint size); 25 .PP 26 .B 27 void vtlogprint(VtLog *log, char *fmt, ...); 28 .PP 29 .B 30 void vtlogclose(VtLog *log); 31 .PP 32 .B 33 void vtlog(char *name, char *fmt, ...); 34 .PP 35 .B 36 void vtlogremove(char *name); 37 .PP 38 .B 39 char** vtlognames(int *n); 40 .PP 41 .B 42 void vtlogdump(int fd, VtLog *log); 43 .PP 44 .B 45 extern int ventilogging; /* default 0 */ 46 .PP 47 .B 48 extern char *VtServerLog; /* "libventi/server" */ 49 .SH DESCRIPTION 50 These routines provide an in-memory circular log 51 structure used by the Venti library and the Venti server 52 to record events for debugging purposes. 53 The logs are named by UTF strings. 54 .PP 55 .I Vtlogopen 56 returns a reference to the log with the given 57 .I name . 58 If a log with that name does not exist and 59 .I size 60 is non-zero, 61 .I vtlogopen 62 creates a new log capable of holding at 63 least 64 .I size 65 bytes and returns it. 66 .I Vtlogclose 67 releases the reference returned by 68 .IR vtlogopen . 69 .PP 70 .I Vtlogprint 71 writes to 72 .IR log , 73 which must be open. 74 .PP 75 .I Vtlog 76 is a convenient packaging of 77 .I vtlogopen 78 followed by 79 .I vtlogprint 80 and 81 .IR vtlogclose . 82 .PP 83 .I Vtlogremove 84 removes the log with the given 85 .IR name , 86 freeing any associated storage. 87 .PP 88 .I Vtlognames 89 returns a list of the names of all the logs. 90 The length of the list is returned in 91 .BI * n \fR. 92 The list 93 should be freed 94 by calling 95 .I vtfree 96 on the returned pointer. 97 The strings in the list will be freed by this call as well. 98 (It is an error to call 99 .I vtfree 100 on any of the strings in the list.) 101 .PP 102 .I Vtlogdump 103 prints 104 .IR log , 105 which must be open, to the file descriptor 106 .IR fd . 107 .PP 108 If 109 .I ventilogging 110 is set to zero (the default), 111 .I vtlognames 112 and 113 .I vtlogdump 114 can inspect existing logs, but 115 .I vtlogopen 116 always returns nil 117 and 118 .I vtlog 119 is a no-op. 120 The other functions are no-ops when 121 passed nil log structures. 122 .PP 123 The server library 124 (see 125 .MR venti-conn (3) 126 and 127 .MR venti-server (3) ) 128 writes debugging information to the log named 129 .IR VtServerLog , 130 which defaults to the string 131 .RB ` libventi/server '. 132 .SH SOURCE 133 .B \*9/src/libventi 134 .SH SEE ALSO 135 .MR venti (3) , 136 .MR venti (8)