Only error log is created.

Only the error log is created anymore. The data structures for
the other files still exist, but they are to be removed next.
This commit is contained in:
Johan Wikman
2015-11-03 22:27:13 +02:00
parent 8798475a46
commit 3348fab3c4

View File

@ -282,7 +282,7 @@ static void fnames_conf_free_memory(fnames_conf_t* fn);
static char* fname_conf_get_prefix(fnames_conf_t* fn, logfile_id_t id); static char* fname_conf_get_prefix(fnames_conf_t* fn, logfile_id_t id);
static char* fname_conf_get_suffix(fnames_conf_t* fn, logfile_id_t id); static char* fname_conf_get_suffix(fnames_conf_t* fn, logfile_id_t id);
static void* thr_filewriter_fun(void* data); static void* thr_filewriter_fun(void* data);
static logfile_t* logmanager_get_logfile(logmanager_t* lm, logfile_id_t id); static logfile_t* logmanager_get_logfile(logmanager_t* lm);
static bool logmanager_register(bool writep); static bool logmanager_register(bool writep);
static void logmanager_unregister(void); static void logmanager_unregister(void);
static bool logmanager_init_nomutex(int argc, char* argv[]); static bool logmanager_init_nomutex(int argc, char* argv[]);
@ -530,12 +530,9 @@ static void logmanager_done_nomutex(void)
/** Free filewriter memory. */ /** Free filewriter memory. */
filewriter_done(fwr); filewriter_done(fwr);
for (i = LOGFILE_FIRST; i <= LOGFILE_LAST; i++) lf = logmanager_get_logfile(lm);
{ /** Release logfile memory */
lf = logmanager_get_logfile(lm, (logfile_id_t)i); logfile_done(lf);
/** Release logfile memory */
logfile_done(lf);
}
if (syslog_id_str) if (syslog_id_str)
{ {
@ -601,12 +598,11 @@ return_void:
release_lock(&lmlock); release_lock(&lmlock);
} }
static logfile_t* logmanager_get_logfile(logmanager_t* lmgr, logfile_id_t id) static logfile_t* logmanager_get_logfile(logmanager_t* lmgr)
{ {
logfile_t* lf; logfile_t* lf;
CHK_LOGMANAGER(lmgr); CHK_LOGMANAGER(lmgr);
ss_dassert(id >= LOGFILE_FIRST && id <= LOGFILE_LAST); lf = &lmgr->lm_logfile[LOGFILE_ERROR];
lf = &lmgr->lm_logfile[id];
if (lf->lf_state == RUN) if (lf->lf_state == RUN)
{ {
@ -1286,8 +1282,11 @@ static bool logfile_set_enabled(logfile_id_t id, bool val)
{ {
if (use_stdout == 0) if (use_stdout == 0)
{ {
logfile_t *lf = logmanager_get_logfile(lm, id); if (id == LOGFILE_ERROR)
lf->lf_enabled = val; {
logfile_t *lf = logmanager_get_logfile(lm);
lf->lf_enabled = val;
}
const char *name; const char *name;
@ -1577,7 +1576,7 @@ int skygw_log_flush(logfile_id_t id)
{ {
CHK_LOGMANAGER(lm); CHK_LOGMANAGER(lm);
logfile_t *lf = logmanager_get_logfile(lm, id); logfile_t *lf = logmanager_get_logfile(lm);
CHK_LOGFILE(lf); CHK_LOGFILE(lf);
logfile_flush(lf); logfile_flush(lf);
@ -1613,7 +1612,7 @@ int skygw_log_rotate(logfile_id_t id)
{ {
CHK_LOGMANAGER(lm); CHK_LOGMANAGER(lm);
logfile_t *lf = logmanager_get_logfile(lm, id); logfile_t *lf = logmanager_get_logfile(lm);
CHK_LOGFILE(lf); CHK_LOGFILE(lf);
MXS_NOTICE("Log rotation is called for %s.", lf->lf_full_file_name); MXS_NOTICE("Log rotation is called for %s.", lf->lf_full_file_name);
@ -2000,8 +1999,6 @@ static char* fname_conf_get_suffix(fnames_conf_t* fn, logfile_id_t id)
static bool logfiles_init(logmanager_t* lm) static bool logfiles_init(logmanager_t* lm)
{ {
bool succp = true; bool succp = true;
int lid = LOGFILE_FIRST;
int i = 0;
bool store_shmem; bool store_shmem;
bool write_syslog; bool write_syslog;
@ -2011,51 +2008,46 @@ static bool logfiles_init(logmanager_t* lm)
openlog(syslog_ident_str, LOG_PID | LOG_NDELAY, LOG_USER); openlog(syslog_ident_str, LOG_PID | LOG_NDELAY, LOG_USER);
} }
/** /**
* Initialize log files, pass softlink flag if necessary. * Initialize log file, pass softlink flag if necessary.
*/ */
while (lid <= LOGFILE_LAST && succp)
/**
* Check if the file is stored in shared memory. If so,
* a symbolic link will be created to log directory.
*/
if (shmem_id_str != NULL &&
strcasestr(shmem_id_str, STRLOGID(LOGFILE_ERROR)) != NULL)
{ {
/** store_shmem = true;
* Check if the file is stored in shared memory. If so,
* a symbolic link will be created to log directory.
*/
if (shmem_id_str != NULL &&
strcasestr(shmem_id_str, STRLOGID(logfile_id_t(lid))) != NULL)
{
store_shmem = true;
}
else
{
store_shmem = false;
}
/**
* Check if file is also written to syslog.
*/
if (syslog_id_str != NULL &&
strcasestr(syslog_id_str, STRLOGID(logfile_id_t(lid))) != NULL)
{
write_syslog = true;
}
else
{
write_syslog = false;
}
succp = logfile_init(&lm->lm_logfile[lid],
(logfile_id_t)lid,
lm,
store_shmem,
write_syslog);
if (!succp)
{
fprintf(stderr, "*\n* Error : Initializing log files failed.\n");
break;
}
lid <<= 1;
i += 1;
} }
else
{
store_shmem = false;
}
/**
* Check if file is also written to syslog.
*/
if (syslog_id_str != NULL &&
strcasestr(syslog_id_str, STRLOGID(LOGFILE_ERROR)) != NULL)
{
write_syslog = true;
}
else
{
write_syslog = false;
}
succp = logfile_init(&lm->lm_logfile[LOGFILE_ERROR],
LOGFILE_ERROR,
lm,
store_shmem,
write_syslog);
if (!succp)
{
fprintf(stderr, "*\n* Error : Initializing log files failed.\n");
}
return succp; return succp;
} }
@ -2756,8 +2748,6 @@ static bool filewriter_init(logmanager_t* logmanager,
{ {
bool succp = false; bool succp = false;
logfile_t* lf; logfile_t* lf;
logfile_id_t id;
int i;
CHK_LOGMANAGER(logmanager); CHK_LOGMANAGER(logmanager);
@ -2777,20 +2767,16 @@ static bool filewriter_init(logmanager_t* logmanager,
goto return_succp; goto return_succp;
} }
for (i = LOGFILE_FIRST; i <= LOGFILE_LAST; i <<= 1) lf = logmanager_get_logfile(logmanager);
{
id = (logfile_id_t)i;
lf = logmanager_get_logfile(logmanager, id);
if (!(succp = logfile_open_file(fw, lf))) if (!(succp = logfile_open_file(fw, lf)))
{ {
fprintf(stderr, fprintf(stderr,
"Error : opening log file %s failed. Exiting " "Error : opening log file %s failed. Exiting "
"MaxScale\n", "MaxScale\n",
lf->lf_full_file_name); lf->lf_full_file_name);
goto return_succp; goto return_succp;
} }
} /*< for */
fw->fwr_state = RUN; fw->fwr_state = RUN;
CHK_FILEWRITER(fw); CHK_FILEWRITER(fw);
succp = true; succp = true;
@ -2806,9 +2792,6 @@ return_succp:
static void filewriter_done(filewriter_t* fw) static void filewriter_done(filewriter_t* fw)
{ {
int i;
logfile_id_t id;
switch (fw->fwr_state) switch (fw->fwr_state)
{ {
case RUN: case RUN:
@ -2816,17 +2799,13 @@ static void filewriter_done(filewriter_t* fw)
case INIT: case INIT:
fw->fwr_logmes = NULL; fw->fwr_logmes = NULL;
fw->fwr_clientmes = NULL; fw->fwr_clientmes = NULL;
for (i = LOGFILE_FIRST; i <= LOGFILE_LAST; i++) if (use_stdout)
{ {
id = (logfile_id_t)i; skygw_file_free(fw->fwr_file[LOGFILE_ERROR]);
if (use_stdout) }
{ else
skygw_file_free(fw->fwr_file[id]); {
} skygw_file_close(fw->fwr_file[LOGFILE_ERROR], true);
else
{
skygw_file_close(fw->fwr_file[id], true);
}
} }
fw->fwr_state = DONE; fw->fwr_state = DONE;
case DONE: case DONE:
@ -3066,28 +3045,18 @@ static void* thr_filewriter_fun(void* data)
} }
/** Process all logfiles which have buffered writes. */ /** Process all logfiles which have buffered writes. */
int i = LOGFILE_FIRST; bool done = false;
do while (!done)
{ {
bool done = thr_flush_file(lm, fwr, (logfile_id_t) i); done = thr_flush_file(lm, fwr, LOGFILE_ERROR);
if (!thr_flushall_check() && skygw_thread_must_exit(thr)) if (!thr_flushall_check() && skygw_thread_must_exit(thr))
{ {
flushall_logfiles(true); flushall_logfiles(true);
done = false; done = false;
} }
if (done)
{
i <<= 1;
}
else
{
i = LOGFILE_FIRST;
}
} }
while (i <= LOGFILE_LAST);
if (flushall_done_flag) if (flushall_done_flag)
{ {