首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >有没有办法在Logback中将System.err记录到文件中?

有没有办法在Logback中将System.err记录到文件中?
EN

Stack Overflow用户
提问于 2016-01-20 03:05:41
回答 1查看 2K关注 0票数 0

我有一个老项目正在做

代码语言:javascript
运行
复制
catch (Exception e) {
e.printStacktrace();
}

到处都是。现在,我想使用Logback将这些堆栈跟踪记录到一个文件中。我在网上找不到任何解决方案。

在Logback中有没有一种方法可以将System.Error语句记录到文件中?我尝试了以下方法,但不起作用,它只将STDOUT日志写入文件。

如果有人能帮上忙,那就太好了,谢谢!

代码语言:javascript
运行
复制
def DEFAULT_PATTERN = "%d [%thread] %-5level %logger - %msg%n"

appender("STDOUT", ConsoleAppender) {
    encoder(PatternLayoutEncoder) { 
        pattern = DEFAULT_PATTERN 
        charset = Charset.forName("UTF-8")
    }
}

appender("SYSERR", ConsoleAppender) {
    encoder(PatternLayoutEncoder) { 
        pattern = DEFAULT_PATTERN 
        charset = Charset.forName("UTF-8")
    }
    target = "System.err"
}

appender("FILE", RollingFileAppender) {
  file = "logs/stdout.log"
  append = true
  encoder(PatternLayoutEncoder) {
    pattern = DEFAULT_PATTERN
    charset = Charset.forName("UTF-8")
  }
  filter(ch.qos.logback.classic.filter.ThresholdFilter) {
    level = INFO
  }
  rollingPolicy(ch.qos.logback.core.rolling.TimeBasedRollingPolicy) {
    fileNamePattern = "logs/stdout-%d{yyyy-MM-dd}.%i.log"
    maxHistory = 10
    timeBasedFileNamingAndTriggeringPolicy(ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP) {
      maxFileSize = "1MB"
    }
  }
}

appender("ERROR", RollingFileAppender) {
  file = "logs/errors.log"
  append = true
  encoder(PatternLayoutEncoder) {
    pattern = DEFAULT_PATTERN
    charset = Charset.forName("UTF-8")
  }
  filter(ch.qos.logback.classic.filter.ThresholdFilter) {
    level = ERROR
  }
  rollingPolicy(ch.qos.logback.core.rolling.TimeBasedRollingPolicy) {
    fileNamePattern = "logs/errors-%d{yyyy-MM-dd}.%i.log"
    maxHistory = 10
    timeBasedFileNamingAndTriggeringPolicy(ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP) {
      maxFileSize = "1MB"
    }
  }
}

/* Make Spring less verbose. */
//logger("org.springframework", INFO)
//logger("org.springframework.web.servlet", INFO)

/* Quieten Thymeleaf. */
//logger("org.thymeleaf", INFO)

/* Jetty can be really noisy on a shaded jar. */
//logger("org.eclipse.jetty.webapp.WebAppClassLoader", INFO)
//logger("org.eclipse.jetty.util.resource.JarResource", INFO)

/* Quieten Jetty in general. */
//logger("org.eclipse", DEBUG);

def appenders = []
appenders.add("STDOUT")
appenders.add("SYSERR")
appenders.add("FILE")
appenders.add("ERROR")

root(INFO, appenders)
EN

回答 1

Stack Overflow用户

发布于 2016-01-21 07:06:03

最终使用了将系统错误重定向到自定义输出打印流的解决方案

log4j redirect stdout to DailyRollingFileAppender

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34884978

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档