我正在尝试使用raven-log4j将youtrack的异常发送到Sentry。
/etc/youtrack/log4j.xml
:
<appender name="sentry" class="net.kencochrane.raven.log4j.SentryAppender">
<param name="dsn" value="https://publicKey:secretKey@host:port/1"/>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="levelMin" value="WARN"/>
</filter>
</appender>
<root>
<priority value="INFO"/>
<appender-ref ref="SYSLOG"/>
<appender-ref ref="sentry"/>
</root>
原始暴发户文件的一部分:
exec java -Xmx{{ heap_size }} -XX:MaxPermSize=250m -Djava.awt.headless=true -Djetbrains.youtrack.disableBrowser=true -Djava.security.egd=/dev/zrandom -Djetbrains.mps.webr.log4jPath =/etc/youtrack/log4j.xml -jar /usr/local/youtrack/{{ jarfile }} 8082
我将其更改为:
exec java -Xmx1g -XX:MaxPermSize=250m -Djava.awt.headless=true -Djetbrains.youtrack.disableBrowser=true -Djava.security.egd=/dev/zrandom -Djetbrains.mps.webr.log4jPath=/etc/youtrack /log4j.xml -cp /usr/local/youtrack/youtrack-6.5.16853.jar:/usr/local/youtrack/lib/* jetbrains.youtrack.standalone.YoutrackStandalone 8082
指定类路径 ( /usr/local/youtrack/lib/*
)。
如果不复制raven-log4j-6.0.0.jar
到/usr/local/youtrack/lib
,我将收到如下错误:
log4j: Class name: [net.kencochrane.raven.log4j.SentryAppender]
log4j:ERROR Could not create an Appender. Reported error follows.
java.lang.ClassNotFoundException: net.kencochrane.raven.log4j.SentryAppender
但是将其放入该lib文件夹后,出现另一个错误:
log4j: Class name: [net.kencochrane.raven.log4j.SentryAppender]
log4j:ERROR Could not create an Appender. Reported error follows.
java.lang.ClassCastException: net.kencochrane.raven.log4j.SentryAppender cannot be cast to org.apache.log4j.Appender
当然,文件夹log4j-*.jar
中没有:lib
ls -l /usr/local/youtrack/lib/
total 88
-rw-r--r-- 1 root root 79444 Jan 7 14:13 raven-6.0.0.jar
-rw-r--r-- 1 root root 6798 Jan 7 14:35 raven-log4j-6.0.0.jar
为什么以及在哪里加载了两次?