Skip to content

Commit 64bdeec

Browse files
c-dilkstongtongcao
authored andcommitted
feat: SplitLogger, for sending errors to stderr and everything else to stdout (#844)
1 parent 57f6479 commit 64bdeec

File tree

20 files changed

+324
-31
lines changed

20 files changed

+324
-31
lines changed

common-tools/clas-analysis/src/main/java/org/jlab/analysis/postprocess/RebuildScalers.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
import org.jlab.jnp.hipo4.data.Event;
1414
import org.jlab.jnp.hipo4.io.HipoReader;
1515
import org.jlab.jnp.hipo4.io.HipoWriterSorted;
16-
import org.jlab.logging.DefaultLogger;
1716
import org.jlab.utils.groups.IndexedTable;
1817
import org.jlab.utils.options.OptionParser;
1918
import org.jlab.utils.system.ClasUtilsFile;
@@ -32,8 +31,6 @@ public class RebuildScalers {
3231

3332
public static void main(String[] args) {
3433

35-
DefaultLogger.debug();
36-
3734
OptionParser parser = new OptionParser("rebuildscaler");
3835
parser.addRequired("-o","output.hipo");
3936
parser.addOption("-c", "0", "Fix DSC/RUN::scaler clock rollover");

common-tools/clas-analysis/src/main/java/org/jlab/analysis/postprocess/Tag1ToEvent.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
import org.jlab.detector.helicity.HelicityBit;
1414
import org.jlab.detector.helicity.HelicitySequenceDelayed;
1515
import org.jlab.jnp.hipo4.data.SchemaFactory;
16-
import org.jlab.logging.DefaultLogger;
16+
import org.jlab.logging.SplitLogger;
1717
import org.jlab.utils.groups.IndexedTable;
1818
import org.jlab.utils.options.OptionParser;
1919

@@ -31,19 +31,18 @@
3131

3232
public class Tag1ToEvent {
3333

34-
static final Logger LOGGER = Logger.getLogger(Tag1ToEvent.class.getName());
34+
static final Logger LOGGER = SplitLogger.create(Tag1ToEvent.class.getName());
3535

3636
public static void main(String[] args) {
3737

38-
DefaultLogger.debug();
39-
40-
// Parse command-line options:
4138
OptionParser parser = new OptionParser("postprocess");
39+
parser.useExternalLogger(); // necessary, since we have `LOGGER` here
4240
parser.addOption("-q","0","do beam charge and livetime (0/1=false/true)");
4341
parser.addOption("-d","0","do delayed helicity (0/1=false/true)");
4442
parser.addOption("-f","0","rebuild the HEL::flip banks (0/1=false/true)");
4543
parser.addRequired("-o","output.hipo");
4644
parser.parse(args);
45+
SplitLogger.configureLevel(LOGGER, parser.getLogLevel());
4746
if (parser.getInputList().isEmpty()) {
4847
parser.printUsage();
4948
LOGGER.severe("No input file(s) specified.");

common-tools/clas-analysis/src/main/java/org/jlab/analysis/postprocess/Util.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,15 @@
2222
import org.jlab.detector.helicity.HelicitySequenceDelayed;
2323
import org.jlab.detector.helicity.HelicitySequenceManager;
2424

25+
import org.jlab.logging.SplitLogger;
26+
2527
/**
2628
* Static utility methods for postprocessing.
2729
* @author baltzell
2830
*/
2931
class Util {
3032

31-
static final Logger logger = Logger.getLogger(Util.class.getName());
33+
static final Logger logger = SplitLogger.create(Util.class.getName());
3234

3335
/**
3436
* Assign the delay-corrected helicity to the HEL::scaler bank's rows

common-tools/clas-detector/src/main/java/org/jlab/detector/calib/utils/ConstantsManager.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import java.util.logging.Logger;
1414

1515
import org.jlab.utils.groups.IndexedTable;
16+
import org.jlab.logging.SplitLogger;
1617

1718
/**
1819
*
@@ -22,7 +23,7 @@ public class ConstantsManager {
2223

2324
public static final int DBERROR_SLEEP_SECONDS=3;
2425

25-
private static Logger LOGGER = Logger.getLogger(ConstantsManager.class.getName());
26+
private static Logger LOGGER = SplitLogger.create(ConstantsManager.class.getName(), false);
2627

2728
private DatabaseConstantsDescriptor defaultDescriptor = new DatabaseConstantsDescriptor();
2829
private volatile Map<Integer, DatabaseConstantsDescriptor> runConstants = new LinkedHashMap<Integer, DatabaseConstantsDescriptor>();
@@ -181,7 +182,7 @@ public String toString() {
181182
*/
182183
public static class DatabaseConstantsDescriptor {
183184

184-
Logger LOGGER = Logger.getLogger(DatabaseConstantsDescriptor.class.getName());
185+
Logger LOGGER = SplitLogger.create(DatabaseConstantsDescriptor.class.getName(), false);
185186

186187
private String descName = "descriptor";
187188
private int runNumber = 10;

common-tools/clas-detector/src/main/java/org/jlab/detector/calib/utils/DatabaseConstantProvider.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,15 @@
2222
import org.jlab.utils.groups.IndexedTable;
2323
import org.jlab.utils.groups.IndexedTableViewer;
2424
import org.jlab.utils.system.FileSystemExecScan;
25+
import org.jlab.logging.SplitLogger;
2526

2627
/**
2728
*
2829
* @author gavalian
2930
*/
3031
public class DatabaseConstantProvider implements ConstantProvider {
3132

32-
static final Logger LOGGER = Logger.getLogger(DatabaseConstantProvider.class.getName());
33+
static final Logger LOGGER = SplitLogger.create(DatabaseConstantProvider.class.getName(), false);
3334

3435
private final HashMap<String,String[]> constantContainer = new HashMap<>();
3536
private final boolean PRINT_ALL = true;

common-tools/clas-detector/src/main/java/org/jlab/detector/calib/utils/RCDBProvider.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import java.util.HashMap;
44
import java.util.logging.Level;
55
import java.util.logging.Logger;
6+
import org.jlab.logging.SplitLogger;
67

78
import org.rcdb.RCDB;
89
import org.rcdb.Condition;
@@ -33,7 +34,7 @@ public Double getSolenoidScale(int run) {
3334
}
3435
}
3536

36-
public static Logger LOGGER = Logger.getLogger(RCDBProvider.class.getName());
37+
public static Logger LOGGER = SplitLogger.create(RCDBProvider.class.getName(), false);
3738

3839
public static final String DEFAULTADDRESS = "mysql://[email protected]/rcdb";
3940

common-tools/clas-detector/src/main/java/org/jlab/detector/helicity/HelicityGenerator.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import java.util.Comparator;
77
import java.util.logging.Level;
88
import java.util.logging.Logger;
9+
import org.jlab.logging.SplitLogger;
910

1011
/**
1112
* Helicity Pseudo-Random Sequence.
@@ -29,7 +30,7 @@
2930
*/
3031
public final class HelicityGenerator implements Comparable<HelicityGenerator>, Comparator<HelicityGenerator> {
3132

32-
static final Logger LOGGER = Logger.getLogger(HelicityGenerator.class.getName());
33+
static final Logger LOGGER = SplitLogger.create(HelicityGenerator.class.getName());
3334
public static final int REGISTER_SIZE=30;
3435
private final List<Integer> states=new ArrayList<>();
3536
private int offset=0;
@@ -187,7 +188,7 @@ public HelicityBit get(final int n) {
187188
*/
188189
public final boolean initialize(List<HelicityState> states) {
189190

190-
LOGGER.log(Level.INFO, "HelicityGenerator: Initializing with {0} states ...", states.size());
191+
LOGGER.log(Level.INFO, "Initializing with {0} states ...", states.size());
191192

192193
// make sure they're time-ordered:
193194
Collections.sort(states);
@@ -242,7 +243,7 @@ else if (iStates.size() > 2 &&
242243
// bad timestamp delta, reset the sequence:
243244
if (seconds < (1.0-0.5)/this.clock ||
244245
seconds > (1.0+0.5)/this.clock) {
245-
LOGGER.log(Level.INFO,"HelicityGenerator: got bad timestamp, resetting... ");
246+
LOGGER.log(Level.INFO,"got bad timestamp, resetting... ");
246247
iStates.clear();
247248
}
248249

@@ -303,7 +304,7 @@ else if (iStates.size() > 2 &&
303304
double corr=(jj-this.offset)/this.clock*HelicitySequence.TIMESTAMP_CLOCK;
304305
timestamps.add(timeStamp-corr);
305306
timestampsRaw.add((double)timeStamp);
306-
LOGGER.fine(String.format("HelicityGenerator: timestamp = %d/%.1f/%.2f",
307+
LOGGER.fine(String.format("timestamp = %d/%.1f/%.2f",
307308
timeStamp,corr,timeStamp-corr));
308309
}
309310
}
@@ -313,7 +314,7 @@ else if (iStates.size() > 2 &&
313314
System.err.println("HelicityGenerator: Initialization Error.");
314315
this.reset();
315316
}
316-
LOGGER.fine("HelicityGenerator: Initialized.");
317+
LOGGER.fine("Initialized.");
317318

318319
return this.initialized();
319320
}

common-tools/clas-detector/src/main/java/org/jlab/detector/helicity/HelicitySequence.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import java.util.logging.Level;
1111
import java.util.logging.Logger;
1212
import org.jlab.detector.calib.utils.ConstantsManager;
13+
import org.jlab.logging.SplitLogger;
1314

1415
import org.jlab.jnp.hipo4.data.Bank;
1516
import org.jlab.jnp.hipo4.data.Event;
@@ -52,7 +53,7 @@
5253
*/
5354
public class HelicitySequence {
5455

55-
static final Logger LOGGER = Logger.getLogger(HelicitySequence.class.getName());
56+
static final Logger LOGGER = SplitLogger.create(HelicitySequence.class.getName());
5657
public static final double TIMESTAMP_CLOCK=250.0e6; // Hz
5758
protected double helicityClock=29.56; // Hz
5859
protected HelicityPattern pattern=HelicityPattern.QUARTET;
@@ -456,7 +457,7 @@ else if (seconds > (1.0+0.5)/this.helicityClock) {
456457
}
457458

458459
LOGGER.info(
459-
"HWP ERRORS: "+hwpErrors+
460+
"\nHWP ERRORS: "+hwpErrors+
460461
"\nSYNC ERRORS: "+syncErrors+
461462
"\nQUARTET ERRORS: "+quartetErrors+
462463
"\nBIGGAP ERRORS: "+bigGapErrors+

common-tools/clas-detector/src/main/java/org/jlab/detector/helicity/HelicitySequenceManager.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import org.jlab.jnp.hipo4.data.Event;
1313
import org.jlab.jnp.hipo4.data.SchemaFactory;
1414
import org.jlab.jnp.hipo4.io.HipoReader;
15+
import org.jlab.logging.SplitLogger;
1516

1617
/**
1718
* Manage helicity sequences for multiple run numbers simultaneously.
@@ -21,7 +22,7 @@
2122
*/
2223
public final class HelicitySequenceManager {
2324

24-
static final Logger LOGGER = Logger.getLogger(HelicitySequence.class.getName());
25+
static final Logger LOGGER = SplitLogger.create(HelicitySequence.class.getName());
2526
SchemaFactory schema=null;
2627
private final int delay;
2728
private boolean flip=false;

common-tools/clas-detector/src/main/java/org/jlab/detector/scalers/DaqScalersSequence.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import org.jlab.jnp.hipo4.data.Bank;
1313
import org.jlab.jnp.hipo4.data.SchemaFactory;
1414
import org.jlab.detector.calib.utils.ConstantsManager;
15+
import org.jlab.logging.SplitLogger;
1516

1617
/**
1718
* For easy access to most recent scaler readout for any given event.
@@ -30,7 +31,7 @@ public class DaqScalersSequence implements Comparator<DaqScalers> {
3031
private Bank runConfigBank=null;
3132
private Bank runScalerBank=null;
3233

33-
protected static final Logger logger = Logger.getLogger(DaqScalersSequence.class.getName());
34+
protected static final Logger logger = SplitLogger.create(DaqScalersSequence.class.getName());
3435

3536
protected DaqScalersSequence(){};
3637

0 commit comments

Comments
 (0)