MCPcopy
hub / github.com/questdb/questdb / createWriter

Method createWriter

core/src/main/java/io/questdb/log/LogFactory.java:456–539  ·  view source on GitHub ↗
(final Properties properties, String writerName)

Source from the content-addressed store, hash-verified

454 }
455
456 @SuppressWarnings("rawtypes")
457 private static LogWriterConfig createWriter(final Properties properties, String writerName) {
458 final String writer = "w." + writerName + '.';
459 final String clazz = getProperty(properties, writer + "class");
460 final String levelStr = getProperty(properties, writer + "level");
461 final String scope = getProperty(properties, writer + "scope");
462
463 if (clazz == null) {
464 return null;
465 }
466
467 final Class<?> cl;
468 final Constructor constructor;
469 try {
470 cl = Class.forName(clazz);
471 constructor = cl.getDeclaredConstructor(RingQueue.class, SCSequence.class, int.class);
472 } catch (ClassNotFoundException e) {
473 throw new LogError("Class not found " + clazz, e);
474 } catch (NoSuchMethodException e) {
475 throw new LogError("Constructor(RingQueue, Sequence, int) expected: " + clazz, e);
476 }
477
478 int level = 0;
479 if (levelStr != null) {
480 for (String s : levelStr.split(",")) {
481 switch (s.toUpperCase()) {
482 case "DEBUG":
483 level |= LogLevel.DEBUG;
484 break;
485 case "INFO":
486 level |= LogLevel.INFO;
487 break;
488 case "ERROR":
489 level |= LogLevel.ERROR;
490 break;
491 case "CRITICAL":
492 level |= LogLevel.CRITICAL;
493 break;
494 case "ADVISORY":
495 level |= LogLevel.ADVISORY;
496 break;
497 default:
498 throw new LogError("Unknown level: " + s);
499 }
500 }
501 }
502
503 if (isForcedDebug()) {
504 level = level | LogLevel.DEBUG;
505 }
506
507 // enable all LOG levels above the minimum set one
508 // ((-1 >>> (msb-1)) << msb) | level
509 final int msb = Numbers.msb(level);
510 level = (((-1 >>> (msb - 1)) << msb) | level) & LogLevel.MASK;
511
512 return new LogWriterConfig(scope == null ? EMPTY_STR : scope, level, (ring, seq, level1) -> {
513 try {

Callers 1

Calls 11

getPropertyMethod · 0.95
isForcedDebugMethod · 0.95
msbMethod · 0.95
putObjectMethod · 0.95
objectFieldOffsetMethod · 0.95
toUpperCaseMethod · 0.80
newInstanceMethod · 0.65
lengthMethod · 0.65
getTypeMethod · 0.65
startsWithMethod · 0.45
containsMethod · 0.45

Tested by

no test coverage detected