911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
|
# File 'lib/fluent/plugin/buffer.rb', line 911
def backup(chunk_unique_id)
unique_id = dump_unique_id_hex(chunk_unique_id)
if @disable_chunk_backup
log.warn "disable_chunk_backup is true. #{unique_id} chunk is not backed up."
return
end
safe_owner_id = owner.plugin_id.gsub(/[ "\/\\:;|*<>?]/, '_')
backup_base_dir = system_config.root_dir || DEFAULT_BACKUP_DIR
backup_file = File.join(backup_base_dir, 'backup', "worker#{fluentd_worker_id}", safe_owner_id, "#{unique_id}.log")
backup_dir = File.dirname(backup_file)
log.warn "bad chunk is moved to #{backup_file}"
FileUtils.mkdir_p(backup_dir, mode: system_config.dir_permission || Fluent::DEFAULT_DIR_PERMISSION) unless Dir.exist?(backup_dir)
File.open(backup_file, 'ab', system_config.file_permission || Fluent::DEFAULT_FILE_PERMISSION) { |f| yield f }
end
|