在Ubuntu上配置Java日志輸出可以通過多種方式實現,具體取決于你使用的日志框架。以下是幾種常見的方法:
<dependencies>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.14.1</version>
</dependency>
<dependency>
<artifactId>log4j-core</artifactId>
<version>2.14.1</version>
</dependency>
</dependencies>
resources
目錄下:<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
<File name="File" fileName="logs/app.log">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
<Policies>
<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
</Policies>
<DefaultRolloverStrategy max="10"/>
</File>
</Appenders>
<Loggers>
<Root level="info">
<AppenderRef ref="Console"/>
<AppenderRef ref="File"/>
</Root>
</Loggers>
</Configuration>
handlers=java.util.logging.ConsoleHandler
java.util.logging.ConsoleHandler.level=INFO
java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter
import java.io.FileInputStream;
import java.io.IOException;
import java.util.logging.*;
public class LoggingExample {
public static void main(String[] args) {
try {
LogManager.getLogManager().readConfiguration(new FileInputStream("logging.properties"));
} catch (IOException e) {
System.err.println("Could not read logging configuration file");
}
Logger logger = Logger.getLogger(LoggingExample.class.getName());
logger.info("This is an info message");
logger.warning("This is a warning message");
logger.severe("This is a severe message");
}
}
<dependencies>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
</dependencies>
resources
目錄下:<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<logger name="com.example" level="debug" additivity="false">
<appender-ref ref="STDOUT"/>
</logger>
<root level="info">
<appender-ref ref="STDOUT"/>
</root>
</configuration>
sudo apt-get install rsyslog
/etc/rsyslog.conf
或/etc/rsyslog.d/50-default.conf
),添加日志輸出到文件的配置::msg, contains, "myapp" -/opt/myproject/logs/myapp.log & stop
sudo service rsyslog restart
sudo apt-get update
sudo apt-get install elasticsearch logstash kibana
配置Elasticsearch:編輯/etc/elasticsearch/elasticsearch.yml
文件,設置集群名稱、節點名稱和數據路徑等。
配置Logstash:創建logstash.conf
文件,配置日志輸入、過濾和輸出。
啟動Logstash:
sudo systemctl start logstash@logstash.service
配置Kibana:編輯/etc/kibana/kibana.yml
文件,設置Elasticsearch的URL。
啟動Kibana:
sudo systemctl start kibana