溫馨提示×

如何配置Ubuntu Java日志輸出

小樊
31
2025-07-04 23:10:39
欄目: 編程語言

在Ubuntu上配置Java日志輸出可以通過多種方式實現,具體取決于你使用的日志框架。以下是幾種常見的方法:

使用Log4j2配置日志級別

  1. 添加Log4j2依賴(如果你使用的是Maven項目):
<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>
  1. 創建log4j2.xml配置文件并將其放置在項目的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>

使用Java Util Logging配置日志級別

  1. 創建logging.properties配置文件
handlers=java.util.logging.ConsoleHandler
java.util.logging.ConsoleHandler.level=INFO
java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter
  1. 在Java代碼中加載配置文件
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");
    }
}

使用Logback配置日志級別

  1. 添加Logback依賴(如果你使用的是Maven項目):
<dependencies>
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.2.3</version>
    </dependency>
</dependencies>
  1. 創建logback.xml配置文件并將其放置在項目的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>

使用rsyslog或Syslog-ng進行日志收集

  1. 安裝rsyslog
sudo apt-get install rsyslog
  1. 編輯rsyslog配置文件(通常在/etc/rsyslog.conf/etc/rsyslog.d/50-default.conf),添加日志輸出到文件的配置:
:msg, contains, "myapp" -/opt/myproject/logs/myapp.log & stop
  1. 重啟rsyslog服務以應用配置:
sudo service rsyslog restart

使用ELK Stack進行日志分析

  1. 安裝ELK組件
sudo apt-get update
sudo apt-get install elasticsearch logstash kibana
  1. 配置Elasticsearch:編輯/etc/elasticsearch/elasticsearch.yml文件,設置集群名稱、節點名稱和數據路徑等。

  2. 配置Logstash:創建logstash.conf文件,配置日志輸入、過濾和輸出。

  3. 啟動Logstash

sudo systemctl start logstash@logstash.service
  1. 配置Kibana:編輯/etc/kibana/kibana.yml文件,設置Elasticsearch的URL。

  2. 啟動Kibana

sudo systemctl start kibana

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女