/*
* MediathekView
* Copyright (C) 2014 W. Xaver
* W.Xaver[at]googlemail.com
* http://zdfmediathk.sourceforge.net/
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package mediathek.tool;
import mSearch.tool.Log;
import mSearch.tool.SysMsg;
import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import static mSearch.tool.Functions.*;
public class Logfile {
public static boolean LogDateiSchreiben(String ziel, String progVersion, String settingsDir, ArrayList<String> progs, String[][] configs) {
boolean ret;
ArrayList<String> retList;
Path logFilePath = Paths.get(ziel);
try (final BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(Files.newOutputStream(logFilePath)))) {
bw.write("");
bw.newLine();
// ___ ___ _ _ _ _ _ _ _ _
// | \/ | | (_) | | | | | | | | | (_)
// | . . | ___ __| |_ __ _| |_| |__ ___| | _| | | |_ _____ __
// | |\/| |/ _ \/ _` | |/ _` | __| '_ \ / _ \ |/ / | | | |/ _ \ \ /\ / /
// | | | | __/ (_| | | (_| | |_| | | | __/ <\ \_/ / | __/\ V V /
// \_| |_/\___|\__,_|_|\__,_|\__|_| |_|\___|_|\_\\___/|_|\___| \_/\_/
bw.write("___ ___ _ _ _ _ _ _ _ _ ");
bw.newLine();
bw.write("| \\/ | | (_) | | | | | | | | | (_) ");
bw.newLine();
bw.write("| . . | ___ __| |_ __ _| |_| |__ ___| | _| | | |_ _____ __");
bw.newLine();
bw.write("| |\\/| |/ _ \\/ _` | |/ _` | __| '_ \\ / _ \\ |/ / | | | |/ _ \\ \\ /\\ / /");
bw.newLine();
bw.write("| | | | __/ (_| | | (_| | |_| | | | __/ <\\ \\_/ / | __/\\ V V / ");
bw.newLine();
bw.write("\\_| |_/\\___|\\__,_|_|\\__,_|\\__|_| |_|\\___|_|\\_\\\\___/|_|\\___| \\_/\\_/ ");
bw.newLine();
bw.write("");
bw.newLine();
bw.write("");
bw.newLine();
bw.write("#####################################################");
bw.newLine();
bw.write("Erstellt: " + new SimpleDateFormat("dd.MM.yyyy, HH:mm").format(new Date()));
bw.newLine();
bw.write("#####################################################");
bw.newLine();
bw.newLine();
bw.write(progVersion);
bw.newLine();
bw.write("Compiled: " + getCompileDate());
bw.newLine();
bw.newLine();
bw.write("=====================================================");
bw.newLine();
bw.write("Java");
bw.newLine();
String[] java = getJavaVersion();
for (String ja : java) {
bw.write(ja);
bw.newLine();
}
bw.newLine();
bw.write("=====================================================");
bw.newLine();
bw.write("Betriebssystem: " + System.getProperty("os.name"));
bw.newLine();
bw.write("Bs-Version: " + System.getProperty("os.version"));
bw.newLine();
bw.write("Bs-Architektur: " + System.getProperty("os.arch"));
bw.newLine();
bw.newLine();
bw.write("=====================================================");
bw.newLine();
bw.write("Programmpfad: " + getPathJar());
bw.newLine();
bw.write("Verzeichnis Einstellungen: " + settingsDir);
bw.newLine();
bw.newLine();
bw.write("=====================================================");
bw.newLine();
long totalMem = Runtime.getRuntime().totalMemory();
bw.write("totalMemory: " + totalMem / (1000L * 1000L) + " MB");
bw.newLine();
long maxMem = Runtime.getRuntime().maxMemory();
bw.write("maxMemory: " + maxMem / (1000L * 1000L) + " MB");
bw.newLine();
long freeMem = Runtime.getRuntime().freeMemory();
bw.write("freeMemory: " + freeMem / (1000L * 1000L) + " MB");
bw.newLine();
bw.newLine();
bw.newLine();
//
bw.write("#####################################################");
bw.newLine();
bw.write("## Programmeinstellungen ##########################");
bw.newLine();
bw.write("#####################################################");
bw.newLine();
bw.newLine();
for (String[] s : configs) {
if (!s[1].isEmpty()) {
bw.write(s[0] + '\t' + s[1]);
bw.newLine();
}
}
bw.newLine();
bw.newLine();
bw.newLine();
bw.newLine();
//
bw.write("#####################################################");
bw.newLine();
bw.write("## Programmsets ##################################");
bw.newLine();
bw.write("#####################################################");
bw.newLine();
bw.newLine();
for (String s : progs) {
bw.write(s);
bw.newLine();
}
bw.newLine();
bw.newLine();
bw.newLine();
bw.newLine();
//
bw.write("#####################################################");
bw.newLine();
bw.write("## Systemmeldungen ##################################");
bw.newLine();
bw.write("#####################################################");
bw.newLine();
bw.newLine();
bw.write(SysMsg.textSystem.toString());
bw.newLine();
bw.newLine();
bw.newLine();
bw.newLine();
//
bw.write("#####################################################");
bw.newLine();
bw.write("## Programmausgabe ##################################");
bw.newLine();
bw.write("#####################################################");
bw.newLine();
bw.newLine();
bw.write(SysMsg.textProgramm.toString());
bw.newLine();
bw.newLine();
bw.newLine();
bw.newLine();
//
bw.write("#########################################################");
bw.newLine();
bw.write("## Fehlermeldungen ");
bw.newLine();
retList = Log.printErrorMsg();
for (String s : retList) {
bw.write(s);
bw.newLine();
}
bw.newLine();
bw.newLine();
//
ret = true;
} catch (Exception ex) {
Log.errorLog(319865493, ex);
ret = false;
}
return ret;
}
}