- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在使用 log4j 进行日志记录时遇到问题。我创建了我的属性文件,并在 Java 代码中打开它,一切正常,只是属性文件出现故障。我在这里浏览了几个教程和问题,但我似乎无法修复它。这是我的属性文件(称为 WSConnectorLog.properties):
##########################
# Loggers
log4J.rootLogger = FATAL, console
log4j.WSDetailedLogger = TRACE, WSDetailLog, console
log4j.WSAppLogger = INFO, WSAppLog, console
# Appenders
log4j.appender.console = org.apache.log4j.ConsoleAppender
log4j.appender.console.layout = org.apache.log4j.PatternLayout
log4j.appender.console.target=System.err
log4j.appender.console.layout.ConversionPattern=%d [%t] (%F:%L) %p %m%n
log4j.appender.WSDetailLog=org.apache.log4j.DailyRollingFileAppender
log4j.appender.WSDetailLog.File=logs/WSDetailed.log
log4j.appender.WSDetailLog.DatePattern='.'yyyy-MM-dd-HH
log4j.appender.WSDetailLog.layout=org.apache.log4j.PatternLayout
log4j.appender.WSDetailLog.layout.ConversionPattern=%d [%t] (%F:%L) %-5p %m%n
log4j.appender.WSAppLog=org.apache.log4j.DailyRollingFileAppender
log4j.appender.WSAppLog.File=logs/ws.log
log4j.appender.WSAppLog.DatePattern='.'yyyy-MM-dd-HH
log4j.appender.WSAppLog.layout=org.apache.log4j.PatternLayout
log4j.appender.WSAppLog.layout.ConversionPattern=%m%n
# Set root category priority to INFO and its only appender to console.
log4j.rootCategory=INFO, console
我在 Java 中这样使用它:
准备:
public class WSConnector {
private static Logger WSDetailedlog = Logger.getLogger("WSDetailedLogger");
private static Logger WSAppLog = Logger.getLogger("WSAppLogger");
private ConnectionManager cm = ConnectionManager.getInstance();
private ConfigHandler config = ConfigHandler.getInstance();
private SimpleDateFormat format = null;
/**
* Protected constructor for the Singleton pattern.
*/
protected WSConnector() {
format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Properties props = new Properties();
try {
props.load(getClass().getResourceAsStream("/WSConnectorLog.properties"));
} catch (IOException e) {
e.printStackTrace();
}
PropertyConfigurator.configure(props);
}
然后写信给:
...
WSDetailedlog.info(log);
...
WSAppLog.info("random string";
...
我收到以下错误:
log4j:ERROR Could not find value for key log4j.appender.CONSOLE
log4j:ERROR Could not instantiate appender named "CONSOLE".
log4j:WARN No appenders could be found for logger (WSDetailedLogger).
log4j:WARN Please initialize the log4j system properly.
log4j:ERROR Could not find value for key log4j.appender.CONSOLE
log4j:ERROR Could not instantiate appender named "CONSOLE".
log4j:ERROR Could not find value for key log4j.appender.CONSOLE
log4j:ERROR Could not instantiate appender named "CONSOLE".
log4j:ERROR Could not find value for key log4j.appender.CONSOLE
log4j:ERROR Could not instantiate appender named "CONSOLE".
log4j:ERROR Could not find value for key log4j.appender.CONSOLE
log4j:ERROR Could not instantiate appender named "CONSOLE".
log4j:ERROR Could not find value for key log4j.appender.CONSOLE
log4j:ERROR Could not instantiate appender named "CONSOLE".
log4j:ERROR Could not find value for key log4j.appender.CONSOLE
log4j:ERROR Could not instantiate appender named "CONSOLE".
我运行它的环境是 Tomcat 7.0。我在那里导出了 jar,并将属性文件放在它旁边。我从 Eclipse Dynamic WebApp 项目调用 jar,以便它可以看到 Tomcat 的 lib 目录。问题不在于它找不到属性文件,而是它以某种方式出现了格式错误。
你能看看它,帮助我理解问题吗?
最佳答案
您不必指定控制台附加程序,您必须将其配置为日志级别,例如:
log4j.rootLogger=INFO, stdout
# Console appender configuration
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d [%t] (%F:%L) %p %m%n
log4j.appender.stdout.filter.b=org.apache.log4j.varia.LevelMatchFilter
log4j.appender.stdout.filter.b.LevelToMatch=FATAL
log4j.appender.stdout.filter.b.AcceptOnMatch=false
这是我用来仅打印 FATAL 日志的配置。希望对您有所帮助!
关于java - Log4j 找不到 appender,但它们存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31701552/
我正在尝试在 Windows 上运行的小于 1GB 的 VM 上设置 YouTrack 和 TeamCity。使用率将非常低(用户和请求)。这是一个 POC 环境,如果它有效,我可能会将它推送到一个超
所以我在尝试使用 FORFILES 解决这个问题时遇到了麻烦。我正在尝试获取不超过 4 天的文件。所以基本上少于 4 天。然而,这似乎不太可能,因为/d -4 获取所有 4 天或更早的项目。 以下是我
如何从下面的 events 表中选择小于 15 分钟前创建的 events? CREATE TABLE events ( created_at timestamp NOT NULL DEFAU
Google Analytics Realtime提供 rt:minutesAgo ,可以过滤查询。 然而,它是一个维度而不是一个度量标准,<=不能在过滤器中使用。 假设我想在最后 n 分钟内获得一些
iOS 核心数据 - 严重的应用程序错误 - 尝试插入 nil 你好, 我的应用程序实际上运行稳定,但在极少数情况下它会崩溃并显示此错误消息... 2019-04-02 20:48:52.437172
我想制作一个 html div 以快速向右移动(例如不到 1 秒)并消失。然后1秒后再次直接出现在这个过程最开始div的位置。此过程将由单击按钮并重复 10 次触发。 我试图在 CSS 中使用过渡属性
我发现使用 TimeTrigger 是 Windows 10 (UWP) 上计划后台任务的方式。但是看起来我们需要给出的最小数字是 15 分钟。只是想知道,即使我们安排它在接下来的 1 分钟内运行,警
我必须在 1 秒内在屏幕上打印 2^20 行整数 printf 不够快,还有其他易于使用的快速输出替代方法吗? 每一行只包含 1 个整数。 我要求它用于竞争性编程问题,我必须将其源代码提交给法官。 最
我是一名优秀的程序员,十分优秀!