kopia lustrzana https://github.com/SP8EBC/MeteoSystem
84 wiersze
2.4 KiB
Java
84 wiersze
2.4 KiB
Java
package cc.pogoda.mobile.meteosystem.file;
|
|
|
|
import org.threeten.bp.LocalDateTime;
|
|
import org.threeten.bp.format.DateTimeFormatter;
|
|
import org.tinylog.Logger;
|
|
|
|
import java.io.File;
|
|
import java.io.FileInputStream;
|
|
import java.io.IOException;
|
|
import java.io.InputStreamReader;
|
|
import java.io.OutputStream;
|
|
import java.io.OutputStreamWriter;
|
|
|
|
public class CopyLog {
|
|
|
|
public static class CopyLogRunner implements Runnable {
|
|
|
|
InputStreamReader streamReader;
|
|
OutputStreamWriter streamWriter;
|
|
|
|
int logFileLn;
|
|
|
|
public CopyLogRunner(InputStreamReader _stream_reader, OutputStreamWriter _stream_writer, int _log_file_ln) {
|
|
streamReader = _stream_reader;
|
|
streamWriter = _stream_writer;
|
|
logFileLn = _log_file_ln;
|
|
}
|
|
|
|
@Override
|
|
public void run() {
|
|
try {
|
|
char buffer[] = new char[logFileLn];
|
|
|
|
streamReader.read(buffer);
|
|
|
|
streamWriter.write(buffer);
|
|
|
|
streamReader.close();
|
|
streamWriter.flush();
|
|
streamWriter.close();
|
|
|
|
Logger.info("[log file copied succesfully]");
|
|
}
|
|
catch (IOException e) {
|
|
Logger.error("[IOException e = " + e.getLocalizedMessage() +"]");
|
|
}
|
|
}
|
|
}
|
|
|
|
public static void forDay(FileNames _file_names, LocalDateTime _date, OutputStream _out) {
|
|
|
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
|
|
File baseDir = _file_names.getDirectory();
|
|
|
|
File logfile = new File(baseDir.getAbsolutePath() + "/logs/log_" + _date.format(formatter) + ".txt");
|
|
|
|
Logger.debug("[logfile.getAbsolutePath() = " + logfile.getAbsolutePath() +"][logfile.length() = " + logfile.length() +"]");
|
|
|
|
try {
|
|
// create an input stream to load log file
|
|
FileInputStream fns = new FileInputStream(logfile);
|
|
InputStreamReader streamReader = new InputStreamReader(fns);
|
|
|
|
// create output stream writer to copy log file into
|
|
OutputStreamWriter writer = new OutputStreamWriter(_out);
|
|
|
|
CopyLogRunner runner = new CopyLogRunner(streamReader, writer, (int)logfile.length());
|
|
|
|
Thread t = new Thread(runner);
|
|
|
|
t.start();
|
|
|
|
|
|
}
|
|
catch (IOException e) {
|
|
Logger.error("[IOException e = " + e.getLocalizedMessage() +"]");
|
|
}
|
|
|
|
// log_{date:yyyy-MM-dd}.txt
|
|
|
|
}
|
|
}
|