[ https://issues.apache.org/jira/browse/OPENNLP-1448?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17693143#comment-17693143 ]
ASF GitHub Bot commented on OPENNLP-1448: ----------------------------------------- rzo1 commented on code in PR #492: URL: https://github.com/apache/opennlp/pull/492#discussion_r1116843133 ########## opennlp-tools/src/main/java/opennlp/tools/log/LogPrintStream.java: ########## @@ -0,0 +1,87 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +package opennlp.tools.log; + +import java.io.PrintStream; +import java.util.Objects; + +import org.slf4j.Logger; +import org.slf4j.event.Level; + +import opennlp.tools.commons.Internal; + +/** + * This class serves as an adapter for a {@link Logger} used withing a {@link PrintStream}. + */ +@Internal +public class LogPrintStream extends PrintStream { + + private final Logger logger; + private final Level level; + + /** + * Creates a {@link LogPrintStream} for the given {@link Logger} + * + * @param logger must not be {@code null} + */ + public LogPrintStream(Logger logger) { + this(logger, Level.INFO); + } + + /** + * Creates a {@link LogPrintStream} for the given {@link Logger}, which logs at the specified + * {@link Level level}. + * + * @param logger must not be {@code null} + * @param level must not be {@code null} + */ + public LogPrintStream(Logger logger, Level level) { + super(nullOutputStream()); + Objects.requireNonNull(logger, "logger must not be NULL."); + Objects.requireNonNull(level, "log level must not be NULL."); + this.logger = logger; + this.level = level; + } + + @Override + public PrintStream printf(String format, Object... args) { + log(String.format(format, args)); + return this; + } + + @Override + public void println(String msg) { + log(msg); + } + + private void log(String msg) { + switch (level) { + case TRACE: + logger.trace(msg); + case DEBUG: + logger.debug(msg); + case INFO: + logger.info(msg); + case WARN: + logger.warn(msg); + case ERROR: + logger.error(msg); + } Review Comment: Yes - you are right ;-) - will fix > Introduce SLF4J in OpenNLP > -------------------------- > > Key: OPENNLP-1448 > URL: https://issues.apache.org/jira/browse/OPENNLP-1448 > Project: OpenNLP > Issue Type: Sub-task > Reporter: Richard Zowalla > Assignee: Richard Zowalla > Priority: Major > > This will be the first step regarding OPENNLP-1447. > Goal is to replace System.err / System.out calls with logger output, which is > configurable. -- This message was sent by Atlassian Jira (v8.20.10#820010)