请问下大家,flink1.13.6版本,standalone集群模式,使用基础的flink run xxx.jar 提交应用程序到集群上运行,怎么让日志打到 应用程序config/log4j.properties配置文件中指定的日志文件中去? 怎么试,好像应用程序日志都是打到${flink_home}/log/flink-root-client-host-xxx.log中去了。
楼主你好,可以通过在应用程序中修改log4j的配置,来指定日志输出到指定的日志文件中。具体步骤如下:
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.14.1</version>
</dependency>
# Set root logger level to INFO and appenders to stdout and rolling file
log4j.rootLogger=INFO, console, file
# Console appender configuration
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.target=System.err
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}: %m%n
# File appender configuration
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=/path/to/your/log/file
log4j.appender.file.MaxFileSize=10MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}: %m%n
其中,/path/to/your/log/file
需要替换为实际的日志文件路径。该配置文件需要放在应用程序的根目录下。
import org.apache.log4j.PropertyConfigurator;
public class Main {
public static void main(String[] args) {
String log4jConfPath = "/path/to/log4j.properties";
PropertyConfigurator.configure(log4jConfPath);
// ...
}
}
其中,/path/to/log4j.properties
需要替换为实际的log4j配置文件的路径。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。