[
https://issues.apache.org/jira/browse/PARQUET-369?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Cheng Lian updated PARQUET-369:
-------------------------------
Description:
Parquet-format shades SLF4J to {{parquet.org.slf4j}} (see
[here|https://github.com/apache/parquet-format/blob/apache-parquet-format-2.3.0/pom.xml#L162]).
This also accidentally shades [this
line|https://github.com/qos-ch/slf4j/blob/v_1.7.2/slf4j-api/src/main/java/org/slf4j/LoggerFactory.java#L207]
{code}
private static String STATIC_LOGGER_BINDER_PATH =
"org/slf4j/impl/StaticLoggerBinder.class";
{code}
to
{code}
private static String STATIC_LOGGER_BINDER_PATH =
"parquet/org/slf4j/impl/StaticLoggerBinder.class";
{code}
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:
{noformat}
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.
{noformat}
was:
Parquet-format shades SLF4J to {{parquet.org.slf4j}} (see
[here|https://github.com/apache/parquet-format/blob/apache-parquet-format-2.3.0/pom.xml#L162]}.
This also accidentally shades [this
line|https://github.com/qos-ch/slf4j/blob/v_1.7.2/slf4j-api/src/main/java/org/slf4j/LoggerFactory.java#L207]
{code}
private static String STATIC_LOGGER_BINDER_PATH =
"org/slf4j/impl/StaticLoggerBinder.class";
{code}
to
{code}
private static String STATIC_LOGGER_BINDER_PATH =
"parquet/org/slf4j/impl/StaticLoggerBinder.class";
{code}
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:
{noformat}
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.
{noformat}
> Shading SLF4J prevents SLF4J locating org.slf4j.impl.StaticLoggerBinder
> -----------------------------------------------------------------------
>
> Key: PARQUET-369
> URL: https://issues.apache.org/jira/browse/PARQUET-369
> Project: Parquet
> Issue Type: Bug
> Components: parquet-format
> Reporter: Cheng Lian
>
> Parquet-format shades SLF4J to {{parquet.org.slf4j}} (see
> [here|https://github.com/apache/parquet-format/blob/apache-parquet-format-2.3.0/pom.xml#L162]).
> This also accidentally shades [this
> line|https://github.com/qos-ch/slf4j/blob/v_1.7.2/slf4j-api/src/main/java/org/slf4j/LoggerFactory.java#L207]
> {code}
> private static String STATIC_LOGGER_BINDER_PATH =
> "org/slf4j/impl/StaticLoggerBinder.class";
> {code}
> to
> {code}
> private static String STATIC_LOGGER_BINDER_PATH =
> "parquet/org/slf4j/impl/StaticLoggerBinder.class";
> {code}
> 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:
> {noformat}
> 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.
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)