Skip to content

Commit 70f29ad

Browse files
committed
return indication if logging was performed
1 parent c9b4f27 commit 70f29ad

File tree

2 files changed

+33
-14
lines changed

2 files changed

+33
-14
lines changed

opengrok-indexer/src/main/java/org/opengrok/indexer/index/DefaultIndexChangedListener.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,12 +61,13 @@ public void fileRemove(String path) {
6161
public void fileAdded(String path, String analyzer) {
6262
Statistics stat = statMap.get(path);
6363
if (stat != null) {
64-
stat.report(LOGGER, Level.FINEST, String.format("Added: '%s' (%s)", path, analyzer),
64+
boolean ret = stat.report(LOGGER, Level.FINEST, String.format("Added: '%s' (%s)", path, analyzer),
6565
"indexer.file.add.latency");
6666
statMap.remove(path, stat);
6767

68-
// The reporting updated the meter, however might not have emitted the log message.
69-
if (LOGGER.isLoggable(Level.FINEST)) {
68+
// The report() updated the meter, however might not have emitted the log message.
69+
// In such case allow it to fall through to the below log() statement.
70+
if (ret) {
7071
return;
7172
}
7273
}

opengrok-indexer/src/main/java/org/opengrok/indexer/util/Statistics.java

Lines changed: 29 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -43,21 +43,33 @@ public Statistics() {
4343
startTime = Instant.now();
4444
}
4545

46-
private void logIt(Logger logger, Level logLevel, String msg, Duration duration) {
46+
/**
47+
* Log a message with duration using provided logger if the supplied log level is active.
48+
* @param logger logger instance
49+
* @param logLevel log level
50+
* @param msg message string
51+
* @param duration duration to report
52+
* @return whether logging was performed
53+
*/
54+
private boolean logIt(Logger logger, Level logLevel, String msg, Duration duration) {
4755
if (logger.isLoggable(logLevel)) {
4856
String timeStr = StringUtils.getReadableTime(duration.toMillis());
4957
logger.log(logLevel, String.format("%s (took %s)", msg, timeStr));
58+
return true;
5059
}
60+
61+
return false;
5162
}
5263

5364
/**
5465
* Log a message along with how much time it took since the constructor was called.
5566
* @param logger logger instance
5667
* @param logLevel log level
5768
* @param msg message string
69+
* @return whether logging was performed
5870
*/
59-
public void report(Logger logger, Level logLevel, String msg) {
60-
logIt(logger, logLevel, msg, Duration.between(startTime, Instant.now()));
71+
public boolean report(Logger logger, Level logLevel, String msg) {
72+
return logIt(logger, logLevel, msg, Duration.between(startTime, Instant.now()));
6173
}
6274

6375
/**
@@ -68,9 +80,10 @@ public void report(Logger logger, Level logLevel, String msg) {
6880
* @param msg message string
6981
* @param meterName name of the meter
7082
* @see Metrics#getRegistry()
83+
* @return whether logging was performed
7184
*/
72-
public void report(Logger logger, Level logLevel, String msg, String meterName) {
73-
report(logger, logLevel, msg, meterName, new String[]{});
85+
public boolean report(Logger logger, Level logLevel, String msg, String meterName) {
86+
return report(logger, logLevel, msg, meterName, new String[]{});
7487
}
7588

7689
/**
@@ -82,11 +95,12 @@ public void report(Logger logger, Level logLevel, String msg, String meterName)
8295
* @param meterName name of the meter
8396
* @param tags array of tags for the meter
8497
* @see Metrics#getRegistry()
98+
* @return whether logging was performed
8599
*/
86-
public void report(Logger logger, Level logLevel, String msg, String meterName, String[] tags) {
100+
public boolean report(Logger logger, Level logLevel, String msg, String meterName, String[] tags) {
87101
Duration duration = Duration.between(startTime, Instant.now());
88102

89-
logIt(logger, logLevel, msg, duration);
103+
boolean ret = logIt(logger, logLevel, msg, duration);
90104

91105
MeterRegistry registry = Metrics.getRegistry();
92106
if (registry != null) {
@@ -95,6 +109,8 @@ public void report(Logger logger, Level logLevel, String msg, String meterName,
95109
register(registry).
96110
record(duration);
97111
}
112+
113+
return ret;
98114
}
99115

100116
/**
@@ -104,18 +120,20 @@ public void report(Logger logger, Level logLevel, String msg, String meterName,
104120
* @param logger logger instance
105121
* @param msg message string
106122
* @param meterName name of the meter
123+
* @return whether logging was performed
107124
*/
108-
public void report(Logger logger, String msg, String meterName) {
109-
report(logger, Level.INFO, msg, meterName);
125+
public boolean report(Logger logger, String msg, String meterName) {
126+
return report(logger, Level.INFO, msg, meterName);
110127
}
111128

112129
/**
113130
* log a message along with how much time it took since the constructor was called.
114131
* The log level is {@code INFO}.
115132
* @param logger logger instance
116133
* @param msg message string
134+
* @return whether logging was performed
117135
*/
118-
public void report(Logger logger, String msg) {
119-
report(logger, Level.INFO, msg);
136+
public boolean report(Logger logger, String msg) {
137+
return report(logger, Level.INFO, msg);
120138
}
121139
}

0 commit comments

Comments
 (0)