You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@apisix.apache.org by GitBox <gi...@apache.org> on 2021/12/07 03:17:42 UTC
[GitHub] [apisix] shuaijinchao commented on a change in pull request #5715: fix(log-rotate): after enabling compression collect log exceptions
shuaijinchao commented on a change in pull request #5715:
URL: https://github.com/apache/apisix/pull/5715#discussion_r763597332
##########
File path: apisix/plugins/log-rotate.lua
##########
@@ -181,6 +151,70 @@ local function scan_log_folder()
end
+local function rename_file(log, date_str)
+ local new_file
+ if not log.new_file then
+ core.log.warn(log.type, " is off")
+ return nil
+ end
+
+ new_file = str_format(log.new_file, date_str)
+ if file_exists(new_file) then
+ core.log.info("file exist: " .. new_file)
+ return new_file
+ end
+
+ local ok, err = os_rename(log.file, new_file)
+ if not ok then
+ core.log.error("move file from ", log.file, " to ", new_file,
+ " res:", ok, " msg:", err)
+ return nil
+ end
+
+ return new_file
+end
+
+
+local function compression_file(new_file)
+ if not new_file or type(new_file) ~= "string" then
+ core.log.info("compression file: ", new_file, " invalid")
+ return
+ end
+
+ local n = get_last_index(new_file, "/")
+ local new_filepath = string.sub(new_file, 1, n)
+ local new_filename = string.sub(new_file, n + 1)
+ local com_filename = new_filename .. COMPRESSION_FILE_SUFFIX
+ local cmd = str_format("cd %s && tar -zcf %s %s", new_filepath,
+ com_filename, new_filename)
+ core.log.info("log file compress command: " .. cmd)
+
+ local ok, stdout, stderr, reason, status = shell.run(cmd)
+ if not ok then
+ core.log.error("compress log file from ", new_filename, " to ", com_filename,
+ " fail, stdout: ", stdout, " stderr: ", stderr, " reason: ", reason,
+ " status: ", status)
+ return
+ end
+
+ ok, stderr = os_remove(new_file)
+ if not ok then
+ core.log.error("remove uncompressed log file: ", new_file, " fail, err: ", stderr)
+ return
+ end
+end
+
+
+local function init_default_logs(logs_info, log_type)
+ local filepath, filename = get_log_path_info(log_type)
+ logs_info[log_type] = { type = log_type }
+ if filename ~= "off" then
+ logs_info[log_type].file = str_format("%s/%s", filepath, filename)
+ logs_info[log_type].new_file = filepath .. "/%s_" .. filename
Review comment:
OK, done
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org