Parquet-format shades SLF4J to parquet.org.slf4j (see here). This also accidentally shades this line
private static String STATIC_LOGGER_BINDER_PATH = "org/slf4j/impl/StaticLoggerBinder.class";
to
private static String STATIC_LOGGER_BINDER_PATH = "parquet/org/slf4j/impl/StaticLoggerBinder.class";
and thus LoggerFactory can never find the correct StaticLoggerBinder implementation even if we provide dependencies like slf4j-log4j12 on the classpath.
This happens in Spark. Whenever we write a Parquet file, we see the following famous message and can never get rid of it:
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Reporter: Cheng Lian / @liancheng
Assignee: Ryan Blue / @rdblue
Related issues:
PRs and other links:
Note: This issue was originally created as PARQUET-369. Please see the migration documentation for further details.
Parquet-format shades SLF4J to
parquet.org.slf4j(see here). This also accidentally shades this lineto
and thus
LoggerFactorycan never find the correctStaticLoggerBinderimplementation even if we provide dependencies likeslf4j-log4j12on the classpath.This happens in Spark. Whenever we write a Parquet file, we see the following famous message and can never get rid of it:
Reporter: Cheng Lian / @liancheng
Assignee: Ryan Blue / @rdblue
Related issues:
PRs and other links:
Note: This issue was originally created as PARQUET-369. Please see the migration documentation for further details.