}
dependencies {
- implementation group: "log4j", name: "log4j", version: "1.2.17"
+ implementation group: "org.apache.logging.log4j", name: "log4j-core", version: "2.25.2"
implementation group: "org.apache.httpcomponents", name: "httpclient", version: "4.4"
implementation group: "org.jsoup", name: "jsoup", version: "1.16.1"
implementation group: "javax.mail", name: "mail", version: "1.4.6-rc1"
import com.google.common.annotations.VisibleForTesting;
import com.sun.mail.smtp.SMTPTransport;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
/**
* {@link Action} implementation that sends an email containing the triggering
*/
public class EmailAction implements Action {
- private static final Logger logger = Logger.getLogger(EmailAction.class);
+ private static final Logger logger = LogManager.getLogger(EmailAction.class);
/** The email address of the sender. */
private final String sender;
import net.pterodactylus.rhynodge.Reaction;
import net.pterodactylus.rhynodge.actions.EmailAction;
import net.pterodactylus.rhynodge.states.StateManager;
-import org.apache.log4j.Logger;
import java.util.Map;
import java.util.Optional;
import java.util.concurrent.*;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
import static java.lang.System.currentTimeMillis;
import static java.util.concurrent.TimeUnit.MILLISECONDS;
scheduledFutures.remove(name).cancel(true);
}
- private static final Logger logger = Logger.getLogger(Engine.class);
+ private static final Logger logger = LogManager.getLogger(Engine.class);
}
import static java.lang.String.format;
import static java.util.Optional.ofNullable;
import static net.pterodactylus.rhynodge.states.FailedState.INSTANCE;
-import static org.apache.log4j.Logger.getLogger;
+import static org.apache.logging.log4j.LogManager.getLogger;
import java.io.IOException;
import java.io.PrintWriter;
import net.pterodactylus.rhynodge.output.DefaultOutput;
import net.pterodactylus.rhynodge.output.Output;
import net.pterodactylus.rhynodge.states.FailedState;
-
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.Logger;
/**
* Runs a {@link Reaction}, starting with its {@link Query}, running the {@link
import com.google.inject.Guice;
import com.google.inject.Injector;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
/**
* Rhynodge main starter class.
chainWatcher.startAsync().awaitTerminated();
}
- private static final Logger logger = Logger.getLogger(Starter.class);
+ private static final Logger logger = LogManager.getLogger(Starter.class);
}
import net.pterodactylus.rhynodge.states.TorrentState;
import net.pterodactylus.rhynodge.states.TorrentState.TorrentFile;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
import org.jspecify.annotations.NonNull;
import static net.pterodactylus.rhynodge.utils.Preconditions.checkState;
*/
public class EpisodeFilter implements Filter {
- private static final Logger logger = Logger.getLogger(EpisodeFilter.class);
+ private static final Logger logger = LogManager.getLogger(EpisodeFilter.class);
/** The pattern to parse episode information from the filename. */
private static final Collection<Pattern> episodePatterns = asList(Pattern.compile("[Ss](\\d{2})[Ee](\\d{2})"), Pattern.compile("[^\\d](\\d{1,2})x(\\d{2})[^\\d]"));
import net.pterodactylus.rhynodge.states.HtmlState;
import net.pterodactylus.rhynodge.states.HttpState;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jspecify.annotations.NonNull;
*/
public class HtmlFilter implements Filter {
- private static final Logger logger = Logger.getLogger(HtmlFilter.class);
+ private static final Logger logger = LogManager.getLogger(HtmlFilter.class);
/**
* {@inheritDoc}
import net.pterodactylus.rhynodge.loader.Chain.Parameter;
import net.pterodactylus.rhynodge.loader.Chain.Part;
-import org.apache.log4j.Logger;
-
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.util.concurrent.AbstractExecutionThreadService;
import com.google.common.util.concurrent.Uninterruptibles;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
import static java.util.stream.Collectors.toMap;
public class ChainWatcher extends AbstractExecutionThreadService {
/** The logger. */
- private static final Logger logger = Logger.getLogger(ChainWatcher.class);
+ private static final Logger logger = LogManager.getLogger(ChainWatcher.class);
/** The JSON object mapper. */
private static final ObjectMapper objectMapper = new ObjectMapper();
import net.pterodactylus.rhynodge.State;
-import org.apache.log4j.Logger;
-
import com.fasterxml.jackson.core.JsonGenerationException;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
/**
* Loads and saves {@link State}s.
public class StateManager {
/** The logger. */
- private static final Logger logger = Logger.getLogger(StateManager.class);
+ private static final Logger logger = LogManager.getLogger(StateManager.class);
/** Jackson object mapper. */
private final ObjectMapper objectMapper = new ObjectMapper();
import net.pterodactylus.rhynodge.Merger
import net.pterodactylus.rhynodge.State
-import org.apache.log4j.Logger
+import org.apache.logging.log4j.LogManager.getLogger
+import org.apache.logging.log4j.Logger
class SavoyMerger : Merger {
}
-private val logger = Logger.getLogger(SavoyMerger::class.java)
+private val logger: Logger = getLogger(SavoyMerger::class.java)
import net.pterodactylus.rhynodge.Filter
import net.pterodactylus.rhynodge.State
import net.pterodactylus.rhynodge.states.JsonState
-import org.apache.log4j.Logger
+import org.apache.logging.log4j.LogManager
+import org.apache.logging.log4j.Logger
/**
* [Filter] implementation that creates a list of movies running at the
}
-private val logger = Logger.getLogger(SavoyTicketsFilter::class.java)
+private val logger: Logger = LogManager.getLogger(SavoyTicketsFilter::class.java)
private val movieExtractor = MovieExtractor()
import net.pterodactylus.rhynodge.states.StateManager.StateDirectory;
import com.fasterxml.jackson.annotation.JsonProperty;
+import org.apache.logging.log4j.core.config.Configurator;
import org.hamcrest.Matchers;
import org.jspecify.annotations.NonNull;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.io.TempDir;
import static java.util.Arrays.asList;
-import static org.apache.log4j.Level.OFF;
-import static org.apache.log4j.Logger.getLogger;
+import static org.apache.logging.log4j.Level.OFF;
+import static org.apache.logging.log4j.LogManager.getLogger;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.is;
@BeforeAll
public static void deactivateLogging() {
- getLogger(StateManager.class).setLevel(OFF);
+ Configurator.setLevel(getLogger(StateManager.class), OFF);
}
@BeforeEach
package net.pterodactylus.util.test
-import org.apache.log4j.Level
-import org.apache.log4j.Logger
+import org.apache.logging.log4j.Level
+import org.apache.logging.log4j.LogManager
+import org.apache.logging.log4j.Logger
+import org.apache.logging.log4j.core.config.Configurator
+import org.apache.logging.log4j.spi.LoggerContext
import org.junit.jupiter.api.extension.AfterEachCallback
import org.junit.jupiter.api.extension.BeforeEachCallback
import org.junit.jupiter.api.extension.ExtendWith
override fun beforeEach(context: ExtensionContext?) {
oldLevel = rootLogger.level
- rootLogger.level = Level.OFF
+ Configurator.setLevel(rootLogger, Level.OFF)
}
override fun afterEach(context: ExtensionContext?) {
- rootLogger.level = oldLevel
+ Configurator.setLevel(rootLogger, oldLevel)
}
- private val rootLogger = Logger.getRootLogger()
+ private val rootLogger = LogManager.getRootLogger()
private var oldLevel: Level? = null
}
package net.pterodactylus.util.test
-import org.apache.log4j.Level
-import org.apache.log4j.Logger
+import org.apache.logging.log4j.Level
+import org.apache.logging.log4j.LogManager
+import org.apache.logging.log4j.core.config.Configurator
import org.hamcrest.MatcherAssert.assertThat
import org.hamcrest.Matchers.equalTo
import org.junit.jupiter.api.Test
@Test
fun `extension disables logging on root logger`() {
- rootLogger.level = Level.ALL
+ Configurator.setLevel(rootLogger, Level.ALL)
extension.beforeEach(null)
assertThat(rootLogger.level, equalTo(Level.OFF))
}
@Test
fun `extension restores level of root logger after test`() {
- rootLogger.level = object : Level(123, "test", 7) {}
+ Configurator.setLevel(rootLogger, Level.forName("test", 123))
extension.beforeEach(null)
extension.afterEach(null)
- assertThat(rootLogger.level.toInt(), equalTo(123))
+ assertThat(rootLogger.level.intLevel(), equalTo(123))
}
- private val rootLogger = Logger.getRootLogger()
+ private val rootLogger = LogManager.getRootLogger()
private val extension = DisableLog4jLoggingExtension()
}