簡體   English   中英

使用 Python 部分的不同模式為 PyFlink 應用程序格式化日志

[英]Format logs for PyFlink application with different pattern for the Python part

我有一個在 PyFlink 中運行的 Python 應用程序。

有沒有辦法說“將此模式應用於 python 代碼生成的日志,並將其他模式應用於所有其他日志?”

我想格式化來自我的 Python 代碼的日志消息,以僅顯示應用程序打印的消息(Log4j PatternLayout調用%m%n ),但保留不是我的代碼的其他 Java 類打印的日志消息帶有一些額外信息(打印消息的記錄器的名稱、時間......基本上,這個布局%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p %-60c %x - %m%n )

我希望終端看起來像:

2022-05-19 16:48:31,765 INFO  org.apache.flink.api.SinkFunction [] - Hello from Java

This line is python logging (no date, no priority info, no logname)...

我正在為根記錄器使用 ConsoleAppender,我可以將其中的格式更改為%m%n ,並且它可以工作並且它只在“Python 端”中顯示消息......但它也適用到“Java 端”也是如此。 我的意思是:如果我這樣做,我會丟失 Java 的額外信息。 它看起來像:

Hello from Java

This line is python logging (no date, no priority info, no logname)...

Java 的輸出“壞”(沒有日期,沒有記錄器名稱...),Python 的輸出“好”

如果我將根記錄器的模式保持為%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p %-60c %x - %m%n ,我的日志如下所示:

2022-05-19 16:48:31,765 INFO  org.apache.flink.api.SinkFunction [] - Hello from Java

2022-05-19 16:48:41,470 INFO  /app/borrajax/my_python_file.py:290  [] - This line is python logging (no date, no priority info, no logname)...

Java 的輸出“好”,Python 的輸出“壞”(左側的額外信息)

這是我的...... log4j 的當前配置文件(不成功,和其他許多人一樣):

appenders=borrajax_console,console

# This affects logging for both user code and Flink
rootLogger.level = INFO
rootLogger.appenderRef.console.ref = ConsoleAppender

# Log all infos to the console
appender.console.name = ConsoleAppender
appender.console.type = CONSOLE
appender.console.layout.type = PatternLayout
appender.console.layout.pattern =%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p %-60c %x - %m%n

# Console appender JUST FOR PYTHON:
appender.borrajax_console.name=BorrajaxConsoleAppender
appender.borrajax_console.type=CONSOLE
appender.borrajax_console.layout.type = PatternLayout
appender.borrajax_console.layout.pattern =%m%n

logger.app.name = org.apache.flink.streaming.api
logger.app.appenderRef.borrajax_console.ref = BorrajaxConsoleAppender

您可以嘗試將根記錄器的模式設置為%m%n並將 Java 記錄器的模式設置為%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p %-60c %x - %m%n ,例如

appenders=borrajax_console,console

# This affects logging for both user code and Flink
rootLogger.level = INFO
rootLogger.appenderRef.console.ref = ConsoleAppender

# Log all infos to the console
appender.console.name = ConsoleAppender
appender.console.type = CONSOLE
appender.console.layout.type = PatternLayout
appender.console.layout.pattern =%m%n

# Console appender JUST FOR JAVA:
appender.borrajax_console.name=BorrajaxConsoleAppender
appender.borrajax_console.type=CONSOLE
appender.borrajax_console.layout.type = PatternLayout
appender.borrajax_console.layout.pattern = %d{yyyy-MM-dd HH:mm:ss,SSS} %-5p %-60c %x - %m%n

logger.app.name = org.apache
logger.app.appenderRef.borrajax_console.ref = BorrajaxConsoleAppender

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM