Skip to content

Commit 4d134c9

Browse files
committed
Use consistent time unit format in logs
1 parent 21d6399 commit 4d134c9

File tree

5 files changed

+51
-50
lines changed

5 files changed

+51
-50
lines changed

Core/src/main/java/mezz/jei/core/util/LoggedTimer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,6 @@ public void start(String message) {
1818

1919
public void stop() {
2020
stopWatch.stop();
21-
LOGGER.info("{} took {}", message, stopWatch);
21+
LOGGER.info("{} took {}", message, TimeUtil.toHumanString(stopWatch.elapsed()));
2222
}
2323
}
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package mezz.jei.core.util;
2+
3+
import java.time.Duration;
4+
import java.util.Locale;
5+
import java.util.concurrent.TimeUnit;
6+
7+
public class TimeUtil {
8+
public static String toHumanString(Duration duration) {
9+
TimeUnit unit = getSmallestUnit(duration);
10+
long nanos = duration.toNanos();
11+
double value = (double) nanos / TimeUnit.NANOSECONDS.convert(1, unit);
12+
return String.format(Locale.ROOT, "%.4g %s", value, unitToString(unit));
13+
}
14+
15+
private static TimeUnit getSmallestUnit(Duration duration) {
16+
if (duration.toDays() > 0) {
17+
return TimeUnit.DAYS;
18+
}
19+
if (duration.toHours() > 0) {
20+
return TimeUnit.HOURS;
21+
}
22+
if (duration.toMinutes() > 0) {
23+
return TimeUnit.MINUTES;
24+
}
25+
if (duration.toSeconds() > 0) {
26+
return TimeUnit.SECONDS;
27+
}
28+
if (duration.toMillis() > 0) {
29+
return TimeUnit.MILLISECONDS;
30+
}
31+
if (duration.toNanos() > 1000) {
32+
return TimeUnit.MICROSECONDS;
33+
}
34+
return TimeUnit.NANOSECONDS;
35+
}
36+
37+
private static String unitToString(TimeUnit unit) {
38+
return unit.name().toLowerCase(Locale.ROOT);
39+
}
40+
}

Library/src/main/java/mezz/jei/library/load/PluginCaller.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.google.common.base.Stopwatch;
44
import mezz.jei.api.IModPlugin;
5+
import mezz.jei.core.util.TimeUtil;
56
import mezz.jei.library.plugins.vanilla.VanillaPlugin;
67
import net.minecraft.resources.ResourceLocation;
78
import org.apache.logging.log4j.LogManager;
@@ -35,6 +36,6 @@ public static void callOnPlugins(String title, List<IModPlugin> plugins, Consume
3536
}
3637
}
3738

38-
LOGGER.info("{} took {}", title, stopwatch);
39+
LOGGER.info("{} took {}", title, TimeUtil.toHumanString(stopwatch.elapsed()));
3940
}
4041
}
Lines changed: 3 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,11 @@
11
package mezz.jei.library.load;
22

3+
import mezz.jei.core.util.TimeUtil;
34
import net.minecraft.resources.ResourceLocation;
45
import org.apache.logging.log4j.LogManager;
56
import org.apache.logging.log4j.Logger;
67

78
import java.time.Duration;
8-
import java.util.Locale;
9-
import java.util.concurrent.TimeUnit;
10-
11-
import static java.util.concurrent.TimeUnit.DAYS;
12-
import static java.util.concurrent.TimeUnit.HOURS;
13-
import static java.util.concurrent.TimeUnit.MICROSECONDS;
14-
import static java.util.concurrent.TimeUnit.MILLISECONDS;
15-
import static java.util.concurrent.TimeUnit.MINUTES;
16-
import static java.util.concurrent.TimeUnit.NANOSECONDS;
17-
import static java.util.concurrent.TimeUnit.SECONDS;
189

1910
public class PluginCallerTimerRunnable {
2011
private static final Logger LOGGER = LogManager.getLogger();
@@ -39,48 +30,16 @@ public void check() {
3930
Duration elapsed = Duration.ofNanos(System.nanoTime() - this.startTime);
4031
long elapsedMs = elapsed.toMillis();
4132
if (elapsedMs > nextLongReportDurationMs) {
42-
LOGGER.error("{}: {} is running and has taken {} so far", title, pluginUid, toHumanString(elapsed));
33+
LOGGER.error("{}: {} is running and has taken {} so far", title, pluginUid, TimeUtil.toHumanString(elapsed));
4334
nextLongReportDurationMs += longReportDurationInterval;
4435
}
4536
}
4637

4738
public void stop() {
4839
Duration elapsed = Duration.ofNanos(System.nanoTime() - this.startTime);
4940
if (elapsed.toMillis() > startReportDurationMs) {
50-
LOGGER.info("{}: {} took {}", title, pluginUid, toHumanString(elapsed));
51-
}
52-
}
53-
54-
private static String toHumanString(Duration duration) {
55-
TimeUnit unit = getSmallestUnit(duration);
56-
long nanos = duration.toNanos();
57-
double value = (double) nanos / NANOSECONDS.convert(1, unit);
58-
return String.format(Locale.ROOT, "%.4g %s", value, unitToString(unit));
59-
}
60-
61-
private static TimeUnit getSmallestUnit(Duration duration) {
62-
if (duration.toDays() > 0) {
63-
return DAYS;
41+
LOGGER.info("{}: {} took {}", title, pluginUid, TimeUtil.toHumanString(elapsed));
6442
}
65-
if (duration.toHours() > 0) {
66-
return HOURS;
67-
}
68-
if (duration.toMinutes() > 0) {
69-
return MINUTES;
70-
}
71-
if (duration.toSeconds() > 0) {
72-
return SECONDS;
73-
}
74-
if (duration.toMillis() > 0) {
75-
return MILLISECONDS;
76-
}
77-
if (duration.toNanos() > 1000) {
78-
return MICROSECONDS;
79-
}
80-
return NANOSECONDS;
8143
}
8244

83-
private static String unitToString(TimeUnit unit) {
84-
return unit.name().toLowerCase(Locale.ROOT);
85-
}
8645
}

Library/src/main/java/mezz/jei/library/recipes/PluginManager.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import mezz.jei.api.recipe.IFocusGroup;
66
import mezz.jei.api.recipe.advanced.IRecipeManagerPlugin;
77
import mezz.jei.api.recipe.types.IRecipeType;
8+
import mezz.jei.core.util.TimeUtil;
89
import mezz.jei.library.recipes.collect.RecipeTypeData;
910
import org.apache.logging.log4j.LogManager;
1011
import org.apache.logging.log4j.Logger;
@@ -86,12 +87,12 @@ private <T> Stream<T> getRecipes(IRecipeManagerPlugin plugin, IRecipeType<T> rec
8687
}
8788

8889
private <T> T safeCallPlugin(IRecipeManagerPlugin plugin, Supplier<T> supplier, T defaultValue) {
89-
Stopwatch stopWatch = Stopwatch.createStarted();
90+
Stopwatch stopwatch = Stopwatch.createStarted();
9091
try {
9192
T result = supplier.get();
92-
stopWatch.stop();
93-
if (stopWatch.elapsed(TimeUnit.MILLISECONDS) > 10) {
94-
LOGGER.warn("Recipe registry plugin is slow, took {}. {}", stopWatch, plugin.getClass());
93+
stopwatch.stop();
94+
if (stopwatch.elapsed(TimeUnit.MILLISECONDS) > 10) {
95+
LOGGER.warn("Recipe registry plugin is slow, took {}. {}", TimeUtil.toHumanString(stopwatch.elapsed()), plugin.getClass());
9596
}
9697
return result;
9798
} catch (RuntimeException | LinkageError e) {

0 commit comments

Comments
 (0)