我在Windows 8.1上下载了Logstash-1.5.0,并尝试在命令提示符下运行它.
首先,我检查了java版本.然后更改目录,logstash-1.5.0/bin
然后输入命令,logstash -e 'input { stdin { } } output { elasticsearch { host => localhost } stdout { } }'它给出了以下错误:
找不到JAVA_HOME指定的java安装
Logstash文件夹位于C:上,Java版本为1.7.0_25.我已将JAVA_HOME环境变量设置到jdk/ bin目录,但它仍然无效.
我是Logstash的新手.有人可以告诉我为什么会发生这种情况并帮助我解决这个问题吗?
我有以下目录结构的Maven的模块,我想要得到的路径abc.access中abcManager.java.
src
|-main
|-java
|-org.abc.xyz
|-init
|-abcManager.java
|-resources
|-abc.access
Run Code Online (Sandbox Code Playgroud)
我尝试使用abcManager.class.getResource("abc.access")它,但它给出了一个空值。
我经历了以下问题,但解决方案不起作用。
我正在尝试使用 Log4j2 API 编写版本 2.8.2 的转换器插件,但无法导入org.apache.logging.log4j.core以导入以下内容:
org.apache.logging.log4j.core.LogEvent, org.apache.logging.log4j.core.config.plugins.Plugin,org.apache.logging.log4j.core.pattern.*
我已经添加了 Maven 依赖项,这与 Log4j 2.8.1 配合得很好
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.8.2</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.8.2</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
更新:log4j-core-2.8.2.jar 内容
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.andrew_flower.test</groupId>
<artifactId>logtest1</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.8.2</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.8.2</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.9</version>
<scope>test</scope>
</dependency>
</dependencies>
<repositories>
<repository>
<id>central</id>
<url>http://repo1.maven.org/maven2/</url>
</repository>
<repository>
<id>apache.snapshots</id>
<name>Apache Release Distribution Repository</name>
<url>
http://repository.apache.org/snapshots
</url>
</repository>
</repositories>
</project>
Run Code Online (Sandbox Code Playgroud) AFAIK log4j2属性文件中的包/类的记录器级别应如下设置。
loggers = abc
logger.abc.name = com.abc.MyClass
logger.abc.level = INFO
Run Code Online (Sandbox Code Playgroud)
因此,如果我有50个要指定的类/包,这是否意味着我必须有50个loggers条目,每个name和都有50个条目level。
是否没有其他方法可以对每个记录器用一行来完成,所以可以在50行中完成?
我想在 log4j2.properties 文件中使一些记录器异步。在 xml 格式中,您可以添加为
<Loggers>
<AsyncLogger name="com.foo.Bar" level="info">
</AsyncLogger>
</Loggers>
Run Code Online (Sandbox Code Playgroud)
我在 log4j2.properties 中尝试将其作为 loggers = com-foo-Bar
asyncLogger.com-foo-Bar.name = com.foo.Bar
asyncLogger.com-foo-Bar.level = INFO
Run Code Online (Sandbox Code Playgroud)
但是这个语法似乎是错误的。
配置它的正确方法是什么?