Skip to content
This repository has been archived by the owner on Oct 24, 2024. It is now read-only.

Commit

Permalink
Use Log4J and SLF4J
Browse files Browse the repository at this point in the history
  • Loading branch information
CiroZDP committed Apr 27, 2024
1 parent 85f4c14 commit c0a3c68
Show file tree
Hide file tree
Showing 10 changed files with 78 additions and 109 deletions.
7 changes: 7 additions & 0 deletions opcraft/logs/latest.log
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
[13:59:07] [main/INFO] [net.op.sound.SoundManager/]: Sound manager started!
[13:59:07] [main/INFO] [net.op.sound.SoundManager/]: [SoundAPI] Sound API status: Active
[13:59:07] [main/INFO] [net.op.render.Render/]: Render system initialized!
[13:59:07] [main/INFO] [net.op.render.Render/]: [OpenGL] Using OpenGL: No
[13:59:07] [main/INFO] [net.op.render.Render/]: FPS Rate: 60
[13:59:07] [main/INFO] [net.op.Client/]: Selected language: English (United States)
[13:59:07] [main/INFO] [net.op.Client/]: OpenCraft 24r09 started!
2 changes: 1 addition & 1 deletion opcraft/options.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
lang:en-US
soundCategory_music:0.0
soundCategory_music:1.0
18 changes: 18 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,24 @@
<version>2.10.1</version>
</dependency>

<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.7</version>
</dependency>

<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.7</version>
</dependency>

<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.7</version>
</dependency>

</dependencies>

<repositories>
Expand Down
34 changes: 14 additions & 20 deletions src/main/java/net/op/Client.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,12 @@
import java.io.File;
import java.util.Arrays;
import java.util.Calendar;
import java.util.logging.Logger;

import javax.swing.JOptionPane;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import joptsimple.OptionParser;
import joptsimple.OptionSet;
import joptsimple.OptionSpec;
Expand All @@ -37,7 +39,7 @@ public final class Client implements Runnable {
public static final int NANOSECONDS = 1000000000;

private static final Client instance = new Client();
public static final Logger logger = Logger.getLogger(Client.class.getName());
public static final Logger logger = LoggerFactory.getLogger(Client.class);

private final Thread thread;
private boolean running = false;
Expand All @@ -51,7 +53,7 @@ public final class Client implements Runnable {
private Client() {
this.render = Render.create();
this.thread = new Thread(this);
this.thread.setName("gameThread");
this.thread.setName("main");
}

/**
Expand Down Expand Up @@ -151,9 +153,6 @@ private void init() {
GUITilesheet.create("/gui.png");
OCFont.create("/fonts");

// Initialize loggers
LoggerConfig.init();

// Initialize sound and render
SoundManager.init();
this.render.init();
Expand All @@ -172,16 +171,15 @@ public Thread thread() {
return this.thread;
}

public void vsync() throws Exception {
public boolean vsync() {
int fpsRate;
fpsRate = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDisplayMode()
.getRefreshRate();

if (fpsRate != DisplayMode.REFRESH_RATE_UNKNOWN) {
if (fpsRate != DisplayMode.REFRESH_RATE_UNKNOWN)
Config.FPS_CAP = fpsRate;
} else {
throw new Exception("Imposible to determinate the refresh rate!");
}

return fpsRate != DisplayMode.REFRESH_RATE_UNKNOWN;
}

public double getNanoPerTick() {
Expand All @@ -196,7 +194,7 @@ public double getNanoPerTick() {
*/
@SuppressWarnings("deprecation")
public void stop(boolean force) {
if (force || !running) {
if (force) {
System.exit(0);
}

Expand Down Expand Up @@ -272,24 +270,20 @@ public static void main(String[] args) {
parser.accepts("demo");

OptionSpec<?> legacyFlag = parser.accepts("legacy");
OptionSpec<?> debugFlag = parser.accepts("debug");
OptionSpec<?> gameDirArgument = parser.accepts("gameDir").withRequiredArg();
OptionSpec<?> configFileArgument = parser.acceptsAll(Arrays.asList("cnf", "conf", "config")).withRequiredArg();

OptionSet argSet = parser.parse(args);
Config.LEGACY = argSet.has(legacyFlag);

if (argSet.has(debugFlag))
LoggerConfig.debugAll();

if (argSet.has(gameDirArgument))
Config.GAME_DIRECTORY = (String) argSet.valueOf(gameDirArgument);

Config.DEFAULT_CONFIG_FILE = Config.GAME_DIRECTORY + "/options.txt";

if (argSet.has(configFileArgument))
Config.DEFAULT_CONFIG_FILE = (String) argSet.valueOf(configFileArgument);

// Starting game
Client game = Client.getClient();
Thread gameThread = game.thread();
Expand All @@ -300,7 +294,7 @@ public static void main(String[] args) {
gameThread.join();
} catch (Exception ignored) {
status = 3;
logger.severe("The game ended with errors!");
logger.error("The game ended with errors!");
}

// TODO: Implement this if the game is played by first time
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/net/op/Config.java
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ public static void read(File gameSettingsFile) {
try {
gameSettings.load(new FileInputStream(gameSettingsFile));
} catch (Exception ex) {
logger.warning("Failed to load game settings!");
logger.warn("Failed to load game settings!");
InternalLogger.out.println(Config.class.getName() + " ->");
ex.printStackTrace(InternalLogger.out);
InternalLogger.out.println();
Expand Down Expand Up @@ -125,7 +125,7 @@ public static void save(File file) {
try {
save(new BufferedWriter(new FileWriter(file)));
} catch (Exception ex) {
logger.warning("Failed to save game settings!");
logger.warn("Failed to save game settings!");
InternalLogger.out.println(Config.class.getName() + " ->");
ex.printStackTrace(InternalLogger.out);
InternalLogger.out.println();
Expand Down
75 changes: 0 additions & 75 deletions src/main/java/net/op/LoggerConfig.java

This file was deleted.

4 changes: 2 additions & 2 deletions src/main/java/net/op/crash/CrashReport.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
import java.util.Calendar;
import java.util.Optional;

import net.op.LoggerConfig;
import net.op.Config;

public class CrashReport {

Expand Down Expand Up @@ -47,7 +47,7 @@ public static String generatePath() {
+ "-" + cInstance.get(Calendar.DAY_OF_MONTH) + "_" + cInstance.get(Calendar.HOUR) + "-"
+ cInstance.get(Calendar.MINUTE) + "-" + cInstance.get(Calendar.SECOND);

return LoggerConfig.getLogDir() + "/crashes/crash-" + filepath + ".log";
return Config.GAME_DIRECTORY + "/logs/crashes/crash-" + filepath + ".log";
}

/**
Expand Down
13 changes: 6 additions & 7 deletions src/main/java/net/op/render/Render.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,9 @@
import java.awt.image.BufferStrategy;
import java.awt.image.BufferedImage;
import java.util.Optional;
import java.util.logging.Logger;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import net.op.Client;
import net.op.Config;
Expand All @@ -33,7 +35,7 @@ public final class Render extends Canvas {

public static final DisplayMode GFX_DISPLAY_MODE = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDisplayMode();

public static final Logger logger = Logger.getLogger(Render.class.getName());
public static final Logger logger = LoggerFactory.getLogger(Render.class);
private static final long serialVersionUID = 1L;

private static final boolean OPEN_GL;
Expand Down Expand Up @@ -97,11 +99,8 @@ public void init() {
logger.info("[OpenGL] Using OpenGL: %s".formatted(OPEN_GL ? "Yes" : "No"));

// Do "VSync"
try {
Client.getClient().vsync();
} catch (Exception ex) {
logger.warning(ex.getMessage());
}
if (!Client.getClient().vsync())
logger.warn("[VSync] Imposible to determinate the refresh rate!");

// Show FPS Rate
logger.info("FPS Rate: %d".formatted(Config.FPS_CAP));
Expand Down
6 changes: 4 additions & 2 deletions src/main/java/net/op/sound/SoundManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,13 @@

import java.util.List;
import java.util.Random;
import java.util.logging.Logger;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class SoundManager {

public static final Logger logger = Logger.getLogger(SoundManager.class.getName());
public static final Logger logger = LoggerFactory.getLogger(SoundManager.class.getName());
public static final int TIMEOUT = (int) (60 * 1.5);

public static boolean MUSIC = false;
Expand Down
24 changes: 24 additions & 0 deletions src/main/resources/log4j2.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<Console name="SysOut" target="SYSTEM_OUT">
<PatternLayout pattern="[%d{HH:mm:ss}] [%t/%level] [%C/]: %msg{nolookups}%n" />
</Console>
<RollingRandomAccessFile name="File" fileName="opcraft/logs/latest.log" filePattern="opcraft/logs/%d{yyyy-MM-dd}-%i.log.gz">
<PatternLayout pattern="[%d{HH:mm:ss}] [%t/%level] [%C/]: %msg{nolookups}%n" />
<Policies>
<TimeBasedTriggeringPolicy />
<OnStartupTriggeringPolicy />
</Policies>
</RollingRandomAccessFile>
</Appenders>
<Loggers>
<Root level="info">
<filters>
<MarkerFilter marker="NETWORK_PACKETS" onMatch="DENY" onMismatch="NEUTRAL" />
</filters>
<AppenderRef ref="SysOut"/>
<AppenderRef ref="File"/>
</Root>
</Loggers>
</Configuration>

0 comments on commit c0a3c68

Please sign in to comment.