ch.qos.logback.core.OutputStreamAppender类的使用及代码示例

x33g5p2x  于2022-01-25 转载在 其他  
字(9.8k)|赞(0)|评价(0)|浏览(187)

本文整理了Java中ch.qos.logback.core.OutputStreamAppender类的一些代码示例,展示了OutputStreamAppender类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。OutputStreamAppender类的具体详情如下:
包路径:ch.qos.logback.core.OutputStreamAppender
类名称:OutputStreamAppender

OutputStreamAppender介绍

[英]OutputStreamAppender appends events to a OutputStream. This class provides basic services that other appenders build upon. For more information about this appender, please refer to the online manual at http://logback.qos.ch/manual/appenders.html#OutputStreamAppender
[中]OutputStreamAppender将事件附加到OutputStream。这个类提供了其他appender所依赖的基本服务。有关此附件的更多信息,请参阅联机手册:http://logback.qos.ch/manual/appenders.html#OutputStreamAppender

代码示例

代码示例来源:origin: dropwizard/dropwizard

@Override
public void start() {
  setOutputStream(datagramSocketOutputStream(host, port));
  super.start();
}

代码示例来源:origin: dropwizard/dropwizard

@Override
  public Appender<E> build(LoggerContext context, String applicationName, LayoutFactory<E> layoutFactory,
               LevelFilterFactory<E> levelFilterFactory, AsyncAppenderFactory<E> asyncAppenderFactory) {
    final OutputStreamAppender<E> appender = appender(context);
    final LayoutWrappingEncoder<E> layoutEncoder = new LayoutWrappingEncoder<>();
    layoutEncoder.setLayout(buildLayout(context, layoutFactory));
    appender.setEncoder(layoutEncoder);

    appender.addFilter(levelFilterFactory.build(threshold));
    getFilterFactories().forEach(f -> appender.addFilter(f.build()));
    appender.start();
    return wrapAsync(appender, asyncAppenderFactory);
  }
}

代码示例来源:origin: dropwizard/dropwizard

@Override
protected OutputStreamAppender<E> appender(LoggerContext context) {
  final OutputStreamAppender<E> appender = new DropwizardSocketAppender<>(host, port,
    (int) connectionTimeout.toMilliseconds(), (int) sendBufferSize.toBytes(), socketFactory());
  appender.setContext(context);
  appender.setName("tcp-socket-appender");
  appender.setImmediateFlush(immediateFlush);
  return appender;
}

代码示例来源:origin: camunda/camunda-bpm-platform

@Override
protected void append(E eventObject) {
 if (!isStarted()) {
  return;
 }
 subAppend(eventObject);
}

代码示例来源:origin: kaklakariada/portmapper

private OutputStreamAppender<ILoggingEvent> createAppender(final OutputStream logMessageOutputStream,
    final Encoder<ILoggingEvent> encoder) {
  final OutputStreamAppender<ILoggingEvent> appender = new OutputStreamAppender<ILoggingEvent>();
  appender.setContext(loggerContext);
  appender.setEncoder(encoder);
  appender.setOutputStream(logMessageOutputStream);
  appender.setName(OUTPUT_STREAM_APPENDER_NAME);
  appender.start();
  return appender;
}

代码示例来源:origin: epam/DLab

/** Perform the base configure of appender.
 * @param context the context of logger.
 * @param appenderName the name of appender.
 * @param appender the class instance of appender.
 */
public void configure(LoggerContext context, String appenderName, OutputStreamAppender<ILoggingEvent> appender) {
  PatternLayoutEncoder encoder = new PatternLayoutEncoder();
  encoder.setPattern(logFormatPattern);
  encoder.setContext(context);
  encoder.start();
  appender.setContext(context);
  appender.setName(appenderName);
  appender.setEncoder(encoder);
  appender.start();
  Logger logger = context.getLogger(org.slf4j.Logger.ROOT_LOGGER_NAME);
  logger.addAppender(appender);
  logger.setAdditive(true);
}

代码示例来源:origin: camunda/camunda-bpm-platform

/**
 * <p>
 * Sets the @link OutputStream} where the log output will go. The specified
 * <code>OutputStream</code> must be opened by the user and be writable. The
 * <code>OutputStream</code> will be closed when the appender instance is
 * closed.
 * 
 * @param outputStream
 *          An already opened OutputStream.
 */
public void setOutputStream(OutputStream outputStream) {
 lock.lock();
 try {
  // close any previously opened output stream
  closeOutputStream();
  this.outputStream = outputStream;
  if (encoder == null) {
   addWarn("Encoder has not been set. Cannot invoke its init method.");
   return;
  }
  encoderInit();
 } finally {
  lock.unlock();
 }
}

代码示例来源:origin: apache/lens

/**
  * Test log statistics store.
  *
  * @throws Exception the exception
  */
 @Test
 public void testLogStatisticsStore() throws Exception {
  LogStatisticsStore store = new LogStatisticsStore();
  store.initialize(LensServerConf.getHiveConf());
  // Do some initialization work
  ByteArrayOutputStream writer = new ByteArrayOutputStream();
  Logger l = (Logger) LoggerFactory.getLogger(MyLoggableLens.class);
  OutputStreamAppender<ILoggingEvent> appender = new OutputStreamAppender<ILoggingEvent>();
  appender.setLayout(new StatisticsLogLayout());
  appender.setContext(l.getLoggerContext());
  appender.setOutputStream(writer);
  appender.setName(MyLoggableLens.class.getCanonicalName());
  appender.start();
  l.addAppender(appender);
  MyLoggableLens sampleEvent = new MyLoggableLens(System.currentTimeMillis());
  store.process(sampleEvent);
  writer.flush();
  l.detachAppender(appender);
  appender.stop();
  ObjectMapper mapper = new ObjectMapper();
  String expected = mapper.writeValueAsString(sampleEvent);
  Assert.assertEquals(new String(writer.toByteArray(), "UTF-8").trim(), expected.trim());
  writer.close();
 }
}

代码示例来源:origin: documents4j/documents4j

private static void configureLogging(File logFile, Level level) {
  LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();
  OutputStreamAppender<ILoggingEvent> appender;
  if (logFile == null) {
    appender = configureConsoleLogging(loggerContext);
  } else {
    appender = configureFileLogging(logFile, loggerContext);
  }
  System.out.println("Logging: The log level is set to " + level);
  PatternLayoutEncoder patternLayoutEncoder = new PatternLayoutEncoder();
  patternLayoutEncoder.setPattern(LogDescription.LOG_PATTERN);
  patternLayoutEncoder.setContext(loggerContext);
  patternLayoutEncoder.start();
  appender.setEncoder(patternLayoutEncoder);
  appender.start();
  ch.qos.logback.classic.Logger rootLogger = loggerContext.getLogger(ch.qos.logback.classic.Logger.ROOT_LOGGER_NAME);
  loggerContext.stop();
  rootLogger.detachAndStopAllAppenders();
  rootLogger.addAppender(appender);
  rootLogger.setLevel(level);
  SLF4JBridgeHandler.removeHandlersForRootLogger();
  SLF4JBridgeHandler.install();
  LevelChangePropagator levelChangePropagator = new LevelChangePropagator();
  levelChangePropagator.setResetJUL(true);
  levelChangePropagator.setContext(loggerContext);
  levelChangePropagator.start();
  loggerContext.addListener(levelChangePropagator);
  loggerContext.start();
}

代码示例来源:origin: camunda/camunda-bpm-platform

if (!isStarted()) {
 return;
  writeOut(event);
 } finally {
  lock.unlock();
 addStatus(new ErrorStatus("IO failure in appender", this, ioe));

代码示例来源:origin: tony19/logback-android

@Override
protected void subAppend(E event) {
 if (!initialized && lazyInit) {
  initialized = true;
  if (checkForFileCollisionInPreviousFileAppenders()) {
   addError("Collisions detected with FileAppender/RollingAppender instances defined earlier. Aborting.");
   addError(COLLISION_WITH_EARLIER_APPENDER_URL);
  } else {
   try {
    openFile(getFile());
    super.start();
   } catch (IOException e) {
    this.started = false;
    addError("openFile(" + fileName + "," + append + ") failed", e);
   }
  }
 }
 super.subAppend(event);
}

代码示例来源:origin: camunda/camunda-bpm-platform

@Override
 protected void writeOut(E event) throws IOException {
  if (prudent) {
   safeWrite(event);
  } else {
   super.writeOut(event);
  }
 }
}

代码示例来源:origin: hs-web/hsweb-generator

@Override
public void stop() {
  super.stop();
}

代码示例来源:origin: tony19/logback-android

void encoderClose() {
 if (encoder != null && this.outputStream != null) {
  try {
   byte[] footer = encoder.footerBytes();
   writeBytes(footer);
  } catch (IOException ioe) {
   this.started = false;
   addStatus(new ErrorStatus("Failed to write footer for appender named ["
     + name + "].", this, ioe));
  }
 }
}

代码示例来源:origin: camunda/camunda-bpm-platform

/**
 * Stop this appender instance. The underlying stream or writer is also
 * closed.
 * 
 * <p>
 * Stopped appenders cannot be reused.
 */
public void stop() {
 lock.lock();
 try {
  closeOutputStream();
  super.stop();
 } finally {
  lock.unlock();
 }
}

代码示例来源:origin: camunda/camunda-bpm-platform

void encoderInit() {
 if (encoder != null && this.outputStream != null) {
  try {
   encoder.init(outputStream);
  } catch (IOException ioe) {
   this.started = false;
   addStatus(new ErrorStatus(
     "Failed to initialize encoder for appender named [" + name + "].",
     this, ioe));
  }
 }
}

代码示例来源:origin: camunda/camunda-bpm-platform

/**
 * Close the underlying {@link OutputStream}.
 */
protected void closeOutputStream() {
 if (this.outputStream != null) {
  try {
   // before closing we have to output out layout's footer
   encoderClose();
   this.outputStream.close();
   this.outputStream = null;
  } catch (IOException e) {
   addStatus(new ErrorStatus(
     "Could not close output stream for OutputStreamAppender.", this, e));
  }
 }
}

代码示例来源:origin: me.moocar/socket-encoder-appender

private void dispatchEvents() throws InterruptedException, IOException {
  while (true) {
    E event = deque.takeFirst();
    super.subAppend(event);
    this.getOutputStream().write('\0');
  }
}

代码示例来源:origin: com.paypal.butterfly/butterfly-cli

@Override
  public void setVerboseMode(boolean verboseMode) {
    this.verboseMode = verboseMode;

    if (verboseMode) {
      PatternLayoutEncoder patternLayoutEncoder = new PatternLayoutEncoder();
      patternLayoutEncoder.setPattern("[%d{HH:mm:ss.SSS}] [%highlight(%level)] %msg%n");
      patternLayoutEncoder.setContext(loggerContext);
      patternLayoutEncoder.start();

      Appender<ILoggingEvent> consoleAppender = new ConsoleAppender();
      ((OutputStreamAppender) consoleAppender).setEncoder(patternLayoutEncoder);
      consoleAppender.setContext(loggerContext);
      consoleAppender.start();

      loggerContext.getLogger("com.paypal.butterfly.cli").detachAppender("CONSOLE");
      loggerContext.getLogger("ROOT").addAppender(consoleAppender);
//        } else {
      // TODO
    }
  }

代码示例来源:origin: NationalSecurityAgency/emissary

private static OutputStreamAppender<ILoggingEvent> buildAppender(final Encoder<ILoggingEvent> encoder, final OutputStream outputStream) {
    OutputStreamAppender<ILoggingEvent> appender = new OutputStreamAppender<ILoggingEvent>();
    appender.setName("logcapture");
    appender.setContext(ContextSelectorStaticBinder.getSingleton().getContextSelector().getDefaultLoggerContext());
    appender.setEncoder(encoder);
    appender.setOutputStream(outputStream);
    appender.start();
    return appender;
  }
}

相关文章