\r
/* Try online rotation only if a size threshold is set. */\r
logger_t *stdout_logger = 0;\r
- if (service->rotate_files && service->rotate_stdout_online && size.QuadPart) {\r
+ if (service->rotate_files && service->rotate_stdout_online) {\r
stdout_logger = (logger_t *) HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(logger_t));\r
if (stdout_logger) {\r
/* Pipe between application's stdout and our logging handle. */\r
stdout_logger->write_handle = stdout_handle;\r
stdout_logger->size = (__int64) size.QuadPart;\r
stdout_logger->tid_ptr = &service->stdout_tid;\r
+ stdout_logger->rotate_online = &service->rotate_stdout_online;\r
\r
/* Logging thread. */\r
service->stdout_thread = create_logging_thread(stdout_logger);\r
log_event(EVENTLOG_ERROR_TYPE, NSSM_EVENT_DUPLICATEHANDLE_FAILED, NSSM_REG_STDOUT, error_string(GetLastError()), 0);\r
return 4;\r
}\r
- service->rotate_stdout_online = false;\r
+ service->rotate_stdout_online = NSSM_ROTATE_OFFLINE;\r
}\r
\r
set_flags = true;\r
\r
/* Try online rotation only if a size threshold is set. */\r
logger_t *stderr_logger = 0;\r
- if (service->rotate_files && service->rotate_stderr_online && size.QuadPart) {\r
+ if (service->rotate_files && service->rotate_stderr_online) {\r
stderr_logger = (logger_t *) HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(logger_t));\r
if (stderr_logger) {\r
/* Pipe between application's stderr and our logging handle. */\r
stderr_logger->write_handle = stderr_handle;\r
stderr_logger->size = (__int64) size.QuadPart;\r
stderr_logger->tid_ptr = &service->stderr_tid;\r
+ stderr_logger->rotate_online = &service->rotate_stderr_online;\r
\r
/* Logging thread. */\r
service->stderr_thread = create_logging_thread(stderr_logger);\r
log_event(EVENTLOG_ERROR_TYPE, NSSM_EVENT_DUPLICATEHANDLE_FAILED, NSSM_REG_STDERR, error_string(GetLastError()), 0);\r
return 7;\r
}\r
- service->rotate_stderr_online = false;\r
+ service->rotate_stderr_online = NSSM_ROTATE_OFFLINE;\r
}\r
}\r
\r
}\r
else if (ret) continue;\r
\r
- if (size + (__int64) in >= logger->size) {\r
+ if (*logger->rotate_online == NSSM_ROTATE_ONLINE_ASAP || (logger->size && size + (__int64) in >= logger->size)) {\r
/* Look for newline. */\r
unsigned long i;\r
for (i = 0; i < in; i++) {\r
size += (__int64) out;\r
\r
/* Rotate. */\r
+ *logger->rotate_online = NSSM_ROTATE_ONLINE;\r
TCHAR rotated[MAX_PATH];\r
rotated_filename(logger->path, rotated, _countof(rotated), 0);\r
\r