implemented RFE #1460586 - Put time stamps in the install log

git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@4635 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
kichik 2006-04-05 18:45:03 +00:00
parent 682ee90493
commit 580c98a100
3 changed files with 32 additions and 2 deletions

View file

@ -157,6 +157,14 @@ cfg.Add(
)
)
cfg.Add(
BoolOption(
'NSIS_CONFIG_LOG_TIMESTAMP',
'adds a timestamp to each log line.',
'no'
)
)
cfg.Add(
BoolOption(
'NSIS_SUPPORT_BGBG',
@ -463,6 +471,7 @@ AddBoolDefine('NSIS_CONFIG_CRC_ANAL')
AddBoolDefine('NSIS_CONFIG_LOG')
AddBoolDefine('NSIS_CONFIG_LOG_ODS')
AddBoolDefine('NSIS_CONFIG_LOG_STDOUT')
AddBoolDefine('NSIS_CONFIG_LOG_TIMESTAMP')
AddBoolDefine('NSIS_SUPPORT_BGBG')
AddBoolDefine('NSIS_SUPPORT_CODECALLBACKS')
AddBoolDefine('NSIS_SUPPORT_MOVEONREBOOT')

View file

@ -38,6 +38,12 @@
#endif
#endif
#ifdef NSIS_CONFIG_LOG_TIMESTAMP
#ifndef NSIS_CONFIG_LOG
#error NSIS_CONFIG_LOG_TIMESTAMP relies on NSIS_CONFIG_LOG, but NSIS_CONFIG_LOG is not defined
#endif
#endif
#if defined(NSIS_CONFIG_CRC_SUPPORT) && defined(NSIS_CONFIG_VISIBLE_SUPPORT)
#define _NSIS_CONFIG_VERIFYDIALOG
#endif

View file

@ -730,7 +730,7 @@ void NSISCALL validate_filename(char *in) {
#ifdef NSIS_CONFIG_LOG
int log_dolog;
char log_text[NSIS_MAX_STRLEN*4];
char log_text[2048]; // 1024 for each wsprintf
#if !defined(NSIS_CONFIG_LOG_ODS) && !defined(NSIS_CONFIG_LOG_STDOUT)
void NSISCALL log_write(int close)
@ -810,11 +810,26 @@ void _LogData2Hex(char *buf, size_t buflen, unsigned char *data, size_t datalen)
mystrcat(buf, "...");
}
#ifdef NSIS_CONFIG_LOG_TIMESTAMP
void log_timestamp(char *buf)
{
SYSTEMTIME st;
GetLocalTime(&st);
wsprintf(buf,"[%04hu/%02hu/%02hu %02hu:%02hu:%02hu] ", st.wYear, st.wMonth, st.wDay, st.wHour, st.wMinute, st.wSecond);
}
#else
# define log_timestamp(x)
#endif//NSIS_CONFIG_LOG_TIMESTAMP
void log_printf(char *format, ...)
{
va_list val;
va_start(val,format);
wvsprintf(log_text,format,val);
log_text[0] = '\0';
log_timestamp(log_text);
wvsprintf(log_text+mystrlen(log_text),format,val);
va_end(val);
#ifdef NSIS_CONFIG_LOG_ODS
if (log_dolog)