b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

log4j appender自定义_log4j routingappender_fileappender log4j(26)

电脑杂谈  发布时间:2017-01-30 04:04:43  来源:网络整理

45//

46if (!renameSucceeded) {

47try {

48this.setFile(fileName, true, bufferedIO, bufferSize);

49} catch (IOException e) {

50if (e instanceof InterruptedIOException) {

51Thread.currentThread().interrupt();

52}

53LogLog.error("setFile(" + fileName

54+ ", true) call failed.", e);

55}

56}

57}

58}

59

60//

61// if all renames were successful, then

62//

63if (renameSucceeded) {

64try {

65this.setFile(fileName, false, bufferedIO, bufferSize);

66nextRollover = 0;

67} catch (IOException e) {

68if (e instanceof InterruptedIOException) {

69Thread.currentThread().interrupt();

70}

71LogLog.error("setFile(" + fileName + ", false) call failed.", e);

72}

73}

74 }

75

76 public synchronized void setFile(String fileName, boolean append,

77boolean bufferedIO, int bufferSize) throws IOException {

78super.setFile(fileName, append, this.bufferedIO, this.bufferSize);

79if (append) {

80File f = new File(fileName);

81((CountingQuietWriter) qw).setCount(f.length());

82}

83 }

84 protected void setQWForFiles(Writer writer) {

85this.qw = new CountingQuietWriter(writer, errorHandler);

86 }

87 protected void subAppend(LoggingEvent event) {

88super.subAppend(event);

89if (fileName != null && qw != null) {

90long size = ((CountingQuietWriter) qw).getCount();

91if (size >= maxFileSize && size >= nextRollover) {

92rollOver();

93}

94}

95 }

AsyncAppender类

AsyncAppender顾名思义,就是异步的调用Appender中的doAppend()方法。有多种方法实现这样的功能,比如每当调用doAppend()方法时,doAppend()方法内部启动一个线程来处理这一次调用的逻辑,这个线程可以是新建的线程也可以是线程池,然而我们知道线程是一个比较耗资源的实体,为每一次的操作都创建一个新的线程,而这个线程在这一次调用结束后就不再使用,这种模式是非常不划算的,性能低下;而且即使在这里使用线程池,也会导致在非常多请求同时过来时引起消耗大量的线程池中的线程或者因为线程池已满而阻塞请求。因而这种直接使用线程去处理每一次的请求是不可取的。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-29497-26.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...