Commit 8123e653 authored by Daniel Silverstone's avatar Daniel Silverstone

Finalise nslog layer properly in closedown

parent ec94d5f8
......@@ -5841,6 +5841,9 @@ int main(int argc, char** argv)
free(current_user_dir);
FreeVec(current_user_faviconcache);
/* finalise logging */
nslog_finalise();
#ifndef __amigaos4__
/* OS3 low memory handler */
ami_memory_fini(memhandler);
......
......@@ -1225,6 +1225,10 @@ int main(int argc, char** argv)
fclose(stderr);
#endif
NSLOG(netsurf, INFO, "exit_gem");
/* finalise logging */
nslog_finalise();
exit_gem();
return 0;
......
......@@ -1066,6 +1066,12 @@ int main(int argc, char** argv)
netsurf_exit();
/* finalise options */
nsoption_finalise(nsoptions, nsoptions_default);
/* finalise logging */
nslog_finalise();
return 0;
}
......
......@@ -2215,6 +2215,9 @@ main(int argc, char** argv)
/* finalise options */
nsoption_finalise(nsoptions, nsoptions_default);
/* finalise logging */
nslog_finalise();
return 0;
}
......
......@@ -1198,5 +1198,8 @@ int main(int argc, char** argv)
/* finalise options */
nsoption_finalise(nsoptions, nsoptions_default);
/* finalise logging */
nslog_finalise();
return 0;
}
......@@ -404,5 +404,8 @@ main(int argc, char **argv)
/* finalise options */
nsoption_finalise(nsoptions, nsoptions_default);
/* finalise logging */
nslog_finalise();
return 0;
}
......@@ -2557,5 +2557,8 @@ int main(int argc, char** argv)
netsurf_exit();
nsoption_finalise(nsoptions, nsoptions_default);
/* finalise logging */
nslog_finalise();
return 0;
}
......@@ -419,5 +419,8 @@ WinMain(HINSTANCE hInstance, HINSTANCE hLastInstance, LPSTR lpcli, int ncmd)
/* finalise options */
nsoption_finalise(nsoptions, nsoptions_default);
/* finalise logging */
nslog_finalise();
return 0;
}
......@@ -137,8 +137,8 @@ nslog_set_filter(const char *filter)
}
err = nslog_filter_set_active(filt, NULL);
filt = nslog_filter_unref(filt);
if (err != NSLOG_NO_ERROR) {
nslog_filter_unref(filt);
return NSERROR_NOSPACE;
}
......@@ -287,3 +287,19 @@ nslog_set_filter_by_options()
else
return nslog_set_filter(nsoption_charp(log_filter));
}
/* exported interface documented in utils/log.h */
void
nslog_finalise()
{
NSLOG(netsurf, INFO,
"Finalising logging, please report any further messages");
verbose_log = true;
if (logfile != stderr) {
fclose(logfile);
logfile = stderr;
}
#ifdef WITH_NSLOG
nslog_cleanup();
#endif
}
......@@ -43,6 +43,15 @@ typedef bool(nslog_ensure_t)(FILE *fptr);
*/
extern nserror nslog_init(nslog_ensure_t *ensure, int *pargc, char **argv);
/**
* Shut down the logging system.
*
* Shuts down the logging subsystem, resetting to verbose logging and output
* to stderr. Note, if logging is done after calling this, it will be sent
* to stderr without filtering.
*/
extern void nslog_finalise(void);
/**
* Set the logging filter.
*
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment