Skip to content

Commit 367c3a0

Browse files
committed
Release ZomboidDoc v2.2.0
2 parents 517847b + 8af7ec3 commit 367c3a0

File tree

10 files changed

+93
-32
lines changed

10 files changed

+93
-32
lines changed

CHANGELOG.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
- Reduce production console logging [\#38](https://github.com/real-coco-labs/pz-zdoc/issues/38)
1010
- Write only annotated files [\#37](https://github.com/real-coco-labs/pz-zdoc/issues/37)
1111
- Make application easier to launch from game dir [\#33](https://github.com/real-coco-labs/pz-zdoc/issues/33)
12-
- Improve production file logging [\#32](https://github.com/real-coco-labs/pz-zdoc/issues/32)
12+
- Improve production file logger [\#32](https://github.com/real-coco-labs/pz-zdoc/issues/32)
1313

1414
**Fixed bugs:**
1515

build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ apply from: 'spotless.gradle'
2525
apply from: 'distribution.gradle'
2626

2727
group 'io.yooksi'
28-
version '2.1.0'
28+
version '2.2.0'
2929

3030
wrapper {
3131
distributionType = Wrapper.DistributionType.ALL

src/main/java/io/yooksi/pz/zdoc/Main.java

+14-1
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,7 @@ else if (command == Command.VERSION)
108108
else if (paths.isEmpty()) {
109109
Logger.warn("No files found under path " + root);
110110
}
111+
boolean onlyAnnotated = cmdLine.includeOnlyAnnotated();
111112
Properties properties = Utils.getProperties("annotate.properties");
112113
// process every file found under given root path
113114
for (Path path : paths)
@@ -164,18 +165,30 @@ else if (dir != null)
164165
case NO_MATCH:
165166
Logger.error(String.format("Failed annotating file \"%s\", " +
166167
"no elements were matched", fileName));
168+
if (!onlyAnnotated) {
169+
writeAnnotatedLinesToFile(content, outputFile);
170+
}
167171
break;
168172
case SKIPPED_FILE_IGNORED:
169-
Logger.info(String.format("Skipped annotating file \"%s\", " +
173+
Logger.warn(String.format("Skipped annotating file \"%s\", " +
170174
"file was ignored.", fileName));
175+
if (!onlyAnnotated) {
176+
writeAnnotatedLinesToFile(content, outputFile);
177+
}
171178
break;
172179
case SKIPPED_FILE_EMPTY:
173180
Logger.warn(String.format("Skipped annotating file \"%s\", " +
174181
"file was empty.", fileName));
182+
if (!onlyAnnotated) {
183+
writeAnnotatedLinesToFile(content, outputFile);
184+
}
175185
break;
176186
case ALL_EXCLUDED:
177187
Logger.warn(String.format("Skipped annotating file \"%s\", " +
178188
"all elements were excluded.", fileName));
189+
if (!onlyAnnotated) {
190+
writeAnnotatedLinesToFile(content, outputFile);
191+
}
179192
break;
180193
}
181194
}

src/main/java/io/yooksi/pz/zdoc/cmd/CommandLine.java

+8
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,14 @@ public static void printHelp(Command[] commands) {
9090
}
9191
}
9292

93+
/**
94+
* Return {@code true} if {@link Command#ANNOTATE} should include only lua classes that were
95+
* successfully annotated by {@link io.yooksi.pz.zdoc.compile.LuaAnnotator LuaAnnotator}.
96+
*/
97+
public boolean includeOnlyAnnotated() {
98+
return hasOption(CommandOptions.ONLY_ANNOTATED_OPTION.getOpt());
99+
}
100+
93101
/**
94102
* @return {@code Set} of class names specified in command options to exclude from
95103
* compilation process or an empty list if exclude option has not been set.

src/main/java/io/yooksi/pz/zdoc/cmd/CommandOptions.java

+7-1
Original file line numberDiff line numberDiff line change
@@ -40,14 +40,20 @@ final class CommandOptions {
4040
"to exclude classes from document generation")
4141
.required(false).hasArg().argName("list").valueSeparator(' ').build();
4242

43+
static final Option ONLY_ANNOTATED_OPTION =
44+
Option.builder("s").longOpt("only-annotated")
45+
.desc("only include classes that were annotated")
46+
.required(false).build();
47+
4348
static final Options LUA_OPTIONS = new Options();
4449
static final Options JAVA_OPTIONS = new Options();
4550

4651
static
4752
{
4853
LUA_OPTIONS.addOption(clone(INPUT_OPTION))
4954
.addOption(clone(OUTPUT_OPTION))
50-
.addOption(clone(EXCLUDE_CLASS_OPTION));
55+
.addOption(clone(EXCLUDE_CLASS_OPTION))
56+
.addOption(ONLY_ANNOTATED_OPTION);
5157

5258
JAVA_OPTIONS.addOption(clone(INPUT_OPTION))
5359
.addOption(clone(OUTPUT_OPTION))

src/main/java/io/yooksi/pz/zdoc/logger/Logger.java

+9-7
Original file line numberDiff line numberDiff line change
@@ -19,24 +19,26 @@
1919

2020
import org.apache.logging.log4j.Level;
2121
import org.apache.logging.log4j.LogManager;
22+
import org.apache.logging.log4j.core.config.Configurator;
2223

2324
@SuppressWarnings("unused")
2425
public class Logger {
2526

2627
public static final Level VERBOSE = Level.forName("VERBOSE", 450);
2728
private static final String JVM_PROPERTY = "zdoc.logger";
28-
2929
private static final org.apache.logging.log4j.Logger logger;
30-
private static final LoggerType TYPE;
3130

3231
static
3332
{
3433
String loggerName = System.getProperty(JVM_PROPERTY);
35-
TYPE = loggerName != null && !loggerName.isEmpty() ?
36-
LoggerType.get(loggerName, LoggerType.INFO) : LoggerType.INFO;
37-
38-
logger = LogManager.getLogger(TYPE.name);
39-
logger.debug("Created logger type: " + TYPE.name);
34+
if (loggerName == null || loggerName.isEmpty()) {
35+
logger = LogManager.getLogger(LoggerType.INFO.name);
36+
}
37+
else if (!loggerName.equals("dev")) {
38+
logger = LogManager.getLogger(LoggerType.get(loggerName, LoggerType.INFO).name);
39+
}
40+
else logger = Configurator.initialize(null, "log4j2-dev.xml").getRootLogger();
41+
logger.debug("Initialize logger: " + (!logger.getName().isEmpty() ? logger.getName() : loggerName));
4042
}
4143

4244
/* Make the constructor private to disable instantiation */

src/main/java/io/yooksi/pz/zdoc/logger/LoggerType.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,7 @@
2222
public enum LoggerType {
2323

2424
INFO("info", "StandardLogger"),
25-
DEBUG("debug", "DebugLogger"),
26-
DEV("dev", "DevLogger");
25+
DEBUG("debug", "DebugLogger");
2726

2827
final String key, name;
2928

src/main/resources/log4j2-dev.xml

+42
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<Configuration status="INFO">
3+
<Properties>
4+
<Property name="logLevelPattern">
5+
%level{VERBOSE=INFO}
6+
</Property>
7+
<Property name="logFilePattern">
8+
logs/$${date:yyyy-MM}/pz-zdoc-%d{MM-dd-yyyy}
9+
</Property>
10+
</Properties>
11+
<Appenders>
12+
<!-- Console for use in production environment -->
13+
<Console name="Console" target="SYSTEM_OUT">
14+
<PatternLayout pattern="${logLevelPattern}: %msg%n"/>
15+
</Console>
16+
<!-- Log file for standard use in development environment -->
17+
<RollingFile name="MainFile" fileName="logs/main.log" filePattern="${logFilePattern}-%i.log.zip">
18+
<PatternLayout pattern="%d{[yyyy-MM-dd][HH:mm:ss]} [${logLevelPattern}] %t - %msg%n"/>
19+
<Policies>
20+
<OnStartupTriggeringPolicy/>
21+
<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
22+
</Policies>
23+
<DefaultRolloverStrategy max="10"/>
24+
</RollingFile>
25+
<!-- Log file for debugging use in development environment -->
26+
<RollingFile name="DebugFile" fileName="logs/debug.log" filePattern="${logFilePattern}-debug-%i.log.zip">
27+
<PatternLayout pattern="%d{[yyyy-MM-dd][HH:mm:ss]} [${logLevelPattern}] %t - %msg%n"/>
28+
<Policies>
29+
<OnStartupTriggeringPolicy/>
30+
<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
31+
</Policies>
32+
<DefaultRolloverStrategy max="10"/>
33+
</RollingFile>
34+
</Appenders>
35+
<Loggers>
36+
<Root level="debug">
37+
<AppenderRef ref="Console" level="verbose"/>
38+
<AppenderRef ref="MainFile" level="verbose"/>
39+
<AppenderRef ref="DebugFile"/>
40+
</Root>
41+
</Loggers>
42+
</Configuration>

src/main/resources/log4j2.xml

+9-18
Original file line numberDiff line numberDiff line change
@@ -10,24 +10,20 @@
1010
</Properties>
1111
<Appenders>
1212
<!-- Console for use in production environment -->
13-
<Console name="StandardConsole" target="SYSTEM_OUT">
13+
<Console name="Console" target="SYSTEM_OUT">
1414
<PatternLayout pattern="${logLevelPattern}: %msg%n"/>
1515
</Console>
16-
<!-- Console for use in development environment -->
17-
<Console name="DevConsole" target="SYSTEM_OUT">
18-
<PatternLayout pattern="%d{[HH:mm:ss]} [${logLevelPattern}] %t - %msg%n"/>
19-
</Console>
20-
<!-- Log file for standard use in development and production environment -->
21-
<RollingFile name="StandardFile" fileName="logs/main.log" filePattern="${logFilePattern}-%i.log.zip">
16+
<!-- Log file for standard use in production environment -->
17+
<RollingFile name="MainFile" fileName="logs/zdoc/main.log" filePattern="${logFilePattern}-%i.log.zip">
2218
<PatternLayout pattern="%d{[yyyy-MM-dd][HH:mm:ss]} [${logLevelPattern}] %t - %msg%n"/>
2319
<Policies>
2420
<OnStartupTriggeringPolicy/>
2521
<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
2622
</Policies>
2723
<DefaultRolloverStrategy max="10"/>
2824
</RollingFile>
29-
<!-- Log file for debugging use in development and production environment -->
30-
<RollingFile name="DebugFile" fileName="logs/debug.log" filePattern="${logFilePattern}-debug-%i.log.zip">
25+
<!-- Log file for debugging use in production environment -->
26+
<RollingFile name="DebugFile" fileName="logs/zdoc/debug.log" filePattern="${logFilePattern}-debug-%i.log.zip">
3127
<PatternLayout pattern="%d{[yyyy-MM-dd][HH:mm:ss]} [${logLevelPattern}] %t - %msg%n"/>
3228
<Policies>
3329
<OnStartupTriggeringPolicy/>
@@ -38,17 +34,12 @@
3834
</Appenders>
3935
<Loggers>
4036
<Logger name="StandardLogger" level="verbose" additivity="false">
41-
<AppenderRef ref="StandardConsole" level="info"/>
42-
<AppenderRef ref="StandardFile" level="verbose"/>
37+
<AppenderRef ref="Console" level="info"/>
38+
<AppenderRef ref="MainFile" level="verbose"/>
4339
</Logger>
4440
<Logger name="DebugLogger" level="debug" additivity="false">
45-
<AppenderRef ref="StandardConsole" level="info"/>
46-
<AppenderRef ref="StandardFile" level="verbose"/>
47-
<AppenderRef ref="DebugFile"/>
48-
</Logger>
49-
<Logger name="DevLogger" level="debug" additivity="false">
50-
<AppenderRef ref="DevConsole"/>
51-
<AppenderRef ref="StandardFile" level="verbose"/>
41+
<AppenderRef ref="Console" level="info"/>
42+
<AppenderRef ref="MainFile" level="verbose"/>
5243
<AppenderRef ref="DebugFile"/>
5344
</Logger>
5445
<Root level="debug"/>

src/test/resources/log4j2.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
<Console name="Console" target="SYSTEM_OUT">
1010
<PatternLayout pattern="%d{[HH:mm:ss]} ${logLevelPattern} %t - %msg%n"/>
1111
</Console>
12-
<File name="TestLog" fileName="logs/test.log">
12+
<File name="TestLog" fileName="logs/test.log" append="false">
1313
<PatternLayout pattern="%d{[yyyy-MM-dd][HH:mm:ss,SSS]} [%level] %t - %msg%n"/>
1414
</File>
1515
</Appenders>

0 commit comments

Comments
 (0)