小编Tih*_*čić的帖子

Log4j2 SyslogAppender无法正常工作

我正在使用Log4j 2.1版(最新的稳定版)并尝试使用Syslog appender登录到syslog服务器.我正在使用他们官方网站上提供的配置(http://logging.apache.org/log4j/2.x/manual/appenders.html#SyslogAppender):

<Syslog name="RFC5424" format="RFC5424" host="localhost" port="514"
        protocol="UDP" appName="MyApp" includeMDC="true"
        facility="LOCAL0" enterpriseNumber="18060" newLine="true"
        messageId="Audit" id="App"/>
Run Code Online (Sandbox Code Playgroud)

当我启动我的应用程序并执行LogManager.getLogger()时,我收到一个错误(堆栈跟踪),所以,在我向错误跟踪器报告错误之前,我做错了什么?

014-11-17 18:26:23,640 ERROR Unable to invoke factory method in class class org.apache.logging.log4j.core.appender.SyslogAppender for element Syslog. java.lang.reflect.InvocationTargetException
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  at java.lang.reflect.Method.invoke(Method.java:606)
  at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:135)
  at org.apache.logging.log4j.core.config.AbstractConfiguration.createPluginObject(AbstractConfiguration.java:766)
  at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:706)
  at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:698)
  at org.apache.logging.log4j.core.config.AbstractConfiguration.doConfigure(AbstractConfiguration.java:358)
  at org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:161)
  at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:359)
  at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:420)
  at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:138)
  at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:147)
  at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:41)
  at org.apache.logging.log4j.LogManager.getContext(LogManager.java:175)
  at org.apache.logging.log4j.LogManager.getLogger(LogManager.java:426)
  at org.apache.logging.log4j.LogManager.getLogger(LogManager.java:408)
  at Log.<clinit>(Log.java:7)
Caused by: java.lang.IllegalArgumentException: No structured id …
Run Code Online (Sandbox Code Playgroud)

java logging log4j syslog log4j2

5
推荐指数
1
解决办法
3165
查看次数

使用标准 JSR356 WebSocket 客户端的连接超时

我有一个连接到远程 websocket 服务器的 Java 应用程序。作为客户端,我使用标准的 Java EE JSR356 WebSocket API

javax.websocket.WebSocketContainer.connectToServer(...)
Run Code Online (Sandbox Code Playgroud)

但是,我还没有找到使用此 API 指定连接超时的方法。当我调用 connectToServer(...) 方法时,它会阻塞直到建立连接(这可能永远不会发生)。

有没有办法使用标准 API 指定连接超时?如果没有,是否有任何解决方法?

connection timeout websocket jakarta-ee

5
推荐指数
1
解决办法
3198
查看次数

JavaScript 字符串相等性能比较

我有一个菜鸟 javascript 问题。假设我们有两个相等的非常大的字符串(约一百万个字符或更多) - 它们具有相同的长度和相同的内容。假设我们有这两个函数,它们都做同样的事情(比较字符串):

function equals1(a, b) {
    return a === b;
}

function equals2(a, b) {
    if (a.length !== b.length) {
           return false;
    }
    for (var i = 0; i < a.length; ++i) {
        if (a[i] !== b[i]) {
            return false;
         }
    }
    return true;
}
Run Code Online (Sandbox Code Playgroud)

为什么第一个函数 (equals1()) 的速度几乎是第二个函数的两倍?如何改进第二个,使其性能与第一个一样好?

javascript string

3
推荐指数
1
解决办法
3584
查看次数