Files
VisualSapfor/src/Common/Utils/Loggable.java

45 lines
1.4 KiB
Java
Raw Normal View History

2024-10-07 17:46:38 +03:00
package Common.Utils;
import Common.Visual.UI;
2025-03-03 17:11:13 +03:00
import _VisualDVM.Visual.Windows.ReadOnlyMultilineTextForm;
2023-09-17 22:13:42 +03:00
import java.io.File;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.nio.file.Paths;
import java.util.Date;
public interface Loggable {
String getLogHomePath();
String getLogName();
default File getLogFile() {
return Paths.get(getLogHomePath(), (getLogName() + "_log.txt")).toFile();
}
default void ClearLog() {
try {
2024-10-14 12:54:52 +03:00
Utils_.forceDeleteWithCheck(getLogFile());
2023-09-17 22:13:42 +03:00
} catch (Exception ignored) {
}
}
default void Print(String message) {
try {
FileWriter Log = new FileWriter(getLogFile(), true);
2024-10-11 00:00:30 +03:00
String datedMessage = Utils_.Brackets(new Date()) + " " + message;
2023-09-17 22:13:42 +03:00
Log.write(datedMessage + "\n");
Log.close();
} catch (Exception ignored) {
}
}
default void PrintException(Exception ex) {
StringWriter out = new StringWriter();
PrintWriter writer = new PrintWriter(out);
ex.printStackTrace(writer);
writer.flush();
Print(out.toString());
2025-03-03 17:11:13 +03:00
Utils_.CopyToClipboard(out.toString());
if (UI.isActive()) {
ReadOnlyMultilineTextForm ff = new ReadOnlyMultilineTextForm();
ff.ShowDialog("Возникло исключение", out.toString());
}
2023-09-17 22:13:42 +03:00
}
}