[英]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.