#include <stdio.h>
#include <stdarg.h>
extern int LogLevel;
+extern int mrafsStyleLogs;
#ifndef AFS_NT40_ENV
extern int serverLogSyslog;
extern int serverLogSyslogFacility;
extern char *serverLogSyslogTag;
#endif
extern void vFSLog(const char *format, va_list args);
+extern void SetLogThreadNameProgram(char *(*func) () );
+
/*@printflike@*/ extern void FSLog(const char *format, ...);
#define ViceLog(level, str) if ((level) <= LogLevel) (FSLog str)
#define vViceLog(level, str) if ((level) <= LogLevel) (vFSLog str)
#define O_NONBLOCK 0
#endif
-char *(*threadNameProgram) ();
+static char *(*threadNameProgram) () = NULL;
static int serverLogFD = -1;
#include <stdarg.h>
int LogLevel;
int mrafsStyleLogs = 0;
+static int threadIdLogs = 0;
int printLocks = 0;
static char ourName[MAXPATHLEN];
+void
+SetLogThreadNameProgram(char *(*func) () )
+{
+ threadNameProgram = func;
+}
+
void
WriteLogBuffer(char *buf, afs_uint32 len)
{
timeStamp[24] = ' '; /* ts[24] is the newline, 25 is the null */
info = &timeStamp[25];
- if (mrafsStyleLogs) {
+ if (mrafsStyleLogs || threadIdLogs) {
name = (*threadNameProgram) ();
+ if (name) {
(void)afs_snprintf(info, (sizeof tbuffer) - strlen(tbuffer), "[%s] ",
name);
info += strlen(info);
}
+ }
(void)afs_vsnprintf(info, (sizeof tbuffer) - strlen(tbuffer), format,
args);
if (LogLevel > 0) {
LogLevel *= 5;
+
+#if defined(AFS_PTHREAD_ENV)
+ if (LogLevel > 999 && threadNameProgram != NULL &&
+ threadIdLogs == 0) {
+ threadIdLogs = 1;
+ }
+#endif
} else {
LogLevel = 1;
+
+#if defined(AFS_PTHREAD_ENV)
+ if (threadIdLogs == 1)
+ threadIdLogs = 0;
+#endif
}
printLocks = 2;
#if defined(AFS_PTHREAD_ENV)
* this signal handler
* needs to be set
* again */
+#if defined(AFS_PTHREAD_ENV)
+ if (threadIdLogs == 1)
+ threadIdLogs = 0;
+#endif
if (mrafsStyleLogs)
OpenLog((char *)&ourName);
} /*ResetDebug_Signal */
#endif
if (mrafsStyleLogs) {
- time_t t = Start.tv_sec;
+ time_t t;
TM_GetTimeOfDay(&Start, 0);
+ t = Start.tv_sec;
TimeFields = localtime(&t);
if (fileName) {
if (strncmp(fileName, (char *)&ourName, strlen(fileName)))
#include "host.h"
#ifdef AFS_PTHREAD_ENV
#include "softsig.h"
-char *(*threadNameProgram) ();
#endif
#if defined(AFS_SGI_ENV)
#include "sys/schedctl.h"
serverLogSyslogFacility = atoi(argv[i] + 8);
}
#endif
+ else if (strcmp(argv[i], "-mrafslogs") == 0) {
+ /* set syslog logging flag */
+ mrafsStyleLogs = 1;
+ }
else {
return (-1);
}
V_BreakVolumeCallbacks = BreakVolumeCallBacksLater;
}
-#if defined(AFS_PTHREAD_ENV)
- threadNameProgram = threadName;
+#ifdef AFS_PTHREAD_ENV
+ SetLogThreadNameProgram( threadName );
#endif
/* initialize libacl routines */