in lib/logstash/outputs/kusto.rb [324:369]
def open(path)
return @files[path] if !deleted?(path) && cached?(path)
if deleted?(path)
if @create_if_deleted
@logger.debug('Required file does not exist, creating it.', path: path)
@files.delete(path)
else
return @files[path] if cached?(path)
end
end
@logger.info('Opening file', path: path)
dir = File.dirname(path)
if !Dir.exist?(dir)
@logger.info('Creating directory', directory: dir)
if @dir_mode != -1
FileUtils.mkdir_p(dir, mode: @dir_mode)
else
FileUtils.mkdir_p(dir)
end
end
stat = begin
File.stat(path)
rescue
nil
end
fd = if stat && stat.ftype == 'fifo' && LogStash::Environment.jruby?
java.io.FileWriter.new(java.io.File.new(path))
elsif @file_mode != -1
File.new(path, 'a+', @file_mode)
else
File.new(path, 'a+')
end
@files[path] = IOWriter.new(fd)
end