Skip to content

Commit

Permalink
Enhance logger
Browse files Browse the repository at this point in the history
  • Loading branch information
RetGal committed Jun 25, 2024
1 parent 08df08f commit 7bac6cf
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 26 deletions.
28 changes: 13 additions & 15 deletions src/main/java/mpo/dayon/common/log/Log.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,26 +18,24 @@
public final class Log {
private static final boolean DEBUG = System.getProperty("dayon.debug") != null;

private static LogAppender out;
private static final LogAppender out;

private Log() {
}

static {
final String mode = System.getProperty("dayon.log", "console");
out = new ConsoleAppender();

if ("file".equals(mode)) {
try {
final File logFile = getOrCreateLogFile();
// console ...
info("Log logFile : " + logFile.getAbsolutePath());
// logFile ...§
out = new FileAppender(logFile.getAbsolutePath());
} catch (IOException ex) {
// console ...
warn("Log file setup error (fallback to console)!", ex);
}
String mode = System.getProperty("dayon.log", "console");
out = mode.equals("file") ? createFileAppender() : new ConsoleAppender();
}

private static LogAppender createFileAppender() {
try {
File logFile = getOrCreateLogFile();
info("Log logFile : " + logFile.getAbsolutePath());
return new FileAppender(logFile.getAbsolutePath());
} catch (IOException ex) {
warn("Log file setup error (fallback to console)!", ex);
return new ConsoleAppender();
}
}

Expand Down
19 changes: 8 additions & 11 deletions src/main/java/mpo/dayon/common/log/file/FileAppender.java
Original file line number Diff line number Diff line change
Expand Up @@ -38,24 +38,21 @@ public FileAppender(String filename) throws FileNotFoundException {
@Override
public synchronized void append(LogLevel level, String message, Throwable error) {
try {
final String info = format(level, message);

writer.println(info);
writer.flush();

count += info.length();
StringBuilder builder = new StringBuilder();
builder.append(format(level, message)).append(System.lineSeparator());
count += message.length();

if (error != null) {
final String stack = getStackTrace(error);
writer.println(stack);
writer.flush();

count += stack.length();
builder.append(getStackTrace(error)).append(System.lineSeparator());
count += getStackTrace(error).length();
}

if (count >= MAX_FILE_SIZE && count >= nextRolloverCount) {
rollOver();
}

writer.write(builder.toString());
writer.flush();
} catch (RuntimeException ex) {
fallback.append(level, message, error);
fallback.append(LogLevel.WARN, "[FileAppender] error", ex);
Expand Down

0 comments on commit 7bac6cf

Please sign in to comment.