mirror of
https://github.com/RipMeApp/ripme.git
synced 2025-08-15 10:24:04 +02:00
mainwindow, configure, log4j --> log4j2
This commit is contained in:
11
pom.xml
11
pom.xml
@@ -59,9 +59,14 @@
|
||||
<version>1.7</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>log4j</groupId>
|
||||
<artifactId>log4j</artifactId>
|
||||
<version>1.2.17</version>
|
||||
<groupId>org.apache.logging.log4j</groupId>
|
||||
<artifactId>log4j-api</artifactId>
|
||||
<version>2.14.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.logging.log4j</groupId>
|
||||
<artifactId>log4j-core</artifactId>
|
||||
<version>2.14.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>commons-cli</groupId>
|
||||
|
@@ -14,8 +14,9 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Observable;
|
||||
import java.util.Scanner;
|
||||
import org.apache.log4j.FileAppender;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.jsoup.HttpStatusException;
|
||||
import com.rarchives.ripme.App;
|
||||
import com.rarchives.ripme.ui.RipStatusComplete;
|
||||
@@ -28,7 +29,7 @@ public abstract class AbstractRipper
|
||||
extends Observable
|
||||
implements RipperInterface, Runnable {
|
||||
|
||||
protected static final Logger LOGGER = Logger.getLogger(AbstractRipper.class);
|
||||
protected static final Logger LOGGER = LogManager.getLogger(AbstractRipper.class);
|
||||
private final String URLHistoryFile = Utils.getURLHistoryFile();
|
||||
|
||||
public static final String USER_AGENT =
|
||||
@@ -177,12 +178,15 @@ public abstract class AbstractRipper
|
||||
*/
|
||||
public void setup() throws IOException {
|
||||
setWorkingDir(this.url);
|
||||
Logger rootLogger = Logger.getRootLogger();
|
||||
FileAppender fa = (FileAppender) rootLogger.getAppender("FILE");
|
||||
if (fa != null) {
|
||||
fa.setFile(this.workingDir + File.separator + "log.txt");
|
||||
fa.activateOptions();
|
||||
}
|
||||
// we do not care if the rollingfileappender is active, just change the logfile in case
|
||||
// TODO this does not work - not even with
|
||||
// .withFileName("${sys:logFilename}")
|
||||
// in Utils.java, RollingFileAppender.
|
||||
// System.setProperty("logFilename", this.workingDir + "/log.txt");
|
||||
// LOGGER.debug("Changing log file to '{}/log.txt'", this.workingDir);
|
||||
// LoggerContext ctx = (LoggerContext) LogManager.getContext(false);
|
||||
// ctx.reconfigure();
|
||||
// ctx.updateLoggers();
|
||||
|
||||
this.threadPool = new DownloadThreadPool();
|
||||
}
|
||||
@@ -482,13 +486,13 @@ public abstract class AbstractRipper
|
||||
RipStatusMessage msg = new RipStatusMessage(STATUS.RIP_COMPLETE, rsc);
|
||||
observer.update(this, msg);
|
||||
|
||||
Logger rootLogger = Logger.getRootLogger();
|
||||
FileAppender fa = (FileAppender) rootLogger.getAppender("FILE");
|
||||
if (fa != null) {
|
||||
LOGGER.debug("Changing log file back to 'ripme.log'");
|
||||
fa.setFile("ripme.log");
|
||||
fa.activateOptions();
|
||||
}
|
||||
// we do not care if the rollingfileappender is active, just change the logfile in case
|
||||
// TODO - does not work.
|
||||
// System.setProperty("logFilename", "ripme.log");
|
||||
// LOGGER.debug("Changing log file back to 'ripme.log'");
|
||||
// LoggerContext ctx = (LoggerContext) LogManager.getContext(false);
|
||||
// ctx.reconfigure();
|
||||
|
||||
if (Utils.getConfigBoolean("urls_only.save", false)) {
|
||||
String urlFile = this.workingDir + File.separator + "urls.txt";
|
||||
try {
|
||||
|
@@ -49,14 +49,15 @@ import javax.swing.text.SimpleAttributeSet;
|
||||
import javax.swing.text.StyleConstants;
|
||||
import javax.swing.text.StyledDocument;
|
||||
|
||||
import org.apache.log4j.ConsoleAppender;
|
||||
import org.apache.log4j.FileAppender;
|
||||
import org.apache.log4j.Level;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import com.rarchives.ripme.ripper.AbstractRipper;
|
||||
import com.rarchives.ripme.utils.RipUtils;
|
||||
import com.rarchives.ripme.utils.Utils;
|
||||
import org.apache.logging.log4j.Level;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.apache.logging.log4j.core.LoggerContext;
|
||||
import org.apache.logging.log4j.core.config.Configuration;
|
||||
import org.apache.logging.log4j.core.config.LoggerConfig;
|
||||
|
||||
import javax.swing.UnsupportedLookAndFeelException;
|
||||
|
||||
@@ -65,7 +66,7 @@ import javax.swing.UnsupportedLookAndFeelException;
|
||||
*/
|
||||
public final class MainWindow implements Runnable, RipStatusHandler {
|
||||
|
||||
private static final Logger LOGGER = Logger.getLogger(MainWindow.class);
|
||||
private static final Logger LOGGER = LogManager.getLogger(MainWindow.class);
|
||||
|
||||
private boolean isRipping = false; // Flag to indicate if we're ripping something
|
||||
|
||||
@@ -993,16 +994,11 @@ public final class MainWindow implements Runnable, RipStatusHandler {
|
||||
newLevel = Level.ERROR;
|
||||
break;
|
||||
}
|
||||
Logger.getRootLogger().setLevel(newLevel);
|
||||
LOGGER.setLevel(newLevel);
|
||||
ConsoleAppender ca = (ConsoleAppender) Logger.getRootLogger().getAppender("stdout");
|
||||
if (ca != null) {
|
||||
ca.setThreshold(newLevel);
|
||||
}
|
||||
FileAppender fa = (FileAppender) Logger.getRootLogger().getAppender("FILE");
|
||||
if (fa != null) {
|
||||
fa.setThreshold(newLevel);
|
||||
}
|
||||
LoggerContext ctx = (LoggerContext) LogManager.getContext(false);
|
||||
Configuration config = ctx.getConfiguration();
|
||||
LoggerConfig loggerConfig = config.getLoggerConfig(LogManager.ROOT_LOGGER_NAME);
|
||||
loggerConfig.setLevel(newLevel);
|
||||
ctx.updateLoggers(); // This causes all Loggers to refetch information from their LoggerConfig.
|
||||
}
|
||||
|
||||
private void setupTrayIcon() {
|
||||
@@ -1382,34 +1378,34 @@ public final class MainWindow implements Runnable, RipStatusHandler {
|
||||
switch (msg.getStatus()) {
|
||||
case LOADING_RESOURCE:
|
||||
case DOWNLOAD_STARTED:
|
||||
if (LOGGER.isEnabledFor(Level.INFO)) {
|
||||
if (LOGGER.isEnabled(Level.INFO)) {
|
||||
appendLog("Downloading " + msg.getObject(), Color.BLACK);
|
||||
}
|
||||
break;
|
||||
case DOWNLOAD_COMPLETE:
|
||||
if (LOGGER.isEnabledFor(Level.INFO)) {
|
||||
if (LOGGER.isEnabled(Level.INFO)) {
|
||||
appendLog("Downloaded " + msg.getObject(), Color.GREEN);
|
||||
}
|
||||
break;
|
||||
case DOWNLOAD_COMPLETE_HISTORY:
|
||||
if (LOGGER.isEnabledFor(Level.INFO)) {
|
||||
if (LOGGER.isEnabled(Level.INFO)) {
|
||||
appendLog("" + msg.getObject(), Color.GREEN);
|
||||
}
|
||||
break;
|
||||
|
||||
case DOWNLOAD_ERRORED:
|
||||
if (LOGGER.isEnabledFor(Level.ERROR)) {
|
||||
if (LOGGER.isEnabled(Level.ERROR)) {
|
||||
appendLog((String) msg.getObject(), Color.RED);
|
||||
}
|
||||
break;
|
||||
case DOWNLOAD_WARN:
|
||||
if (LOGGER.isEnabledFor(Level.WARN)) {
|
||||
if (LOGGER.isEnabled(Level.WARN)) {
|
||||
appendLog((String) msg.getObject(), Color.ORANGE);
|
||||
}
|
||||
break;
|
||||
|
||||
case RIP_ERRORED:
|
||||
if (LOGGER.isEnabledFor(Level.ERROR)) {
|
||||
if (LOGGER.isEnabled(Level.ERROR)) {
|
||||
appendLog((String) msg.getObject(), Color.RED);
|
||||
}
|
||||
stopButton.setEnabled(false);
|
||||
@@ -1511,7 +1507,7 @@ public final class MainWindow implements Runnable, RipStatusHandler {
|
||||
// Update total bytes
|
||||
break;
|
||||
case NO_ALBUM_OR_USER:
|
||||
if (LOGGER.isEnabledFor(Level.ERROR)) {
|
||||
if (LOGGER.isEnabled(Level.ERROR)) {
|
||||
appendLog((String) msg.getObject(), Color.RED);
|
||||
}
|
||||
stopButton.setEnabled(false);
|
||||
|
@@ -3,7 +3,6 @@ package com.rarchives.ripme.utils;
|
||||
import java.io.File;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.lang.reflect.Constructor;
|
||||
import java.net.URI;
|
||||
@@ -40,9 +39,15 @@ import com.rarchives.ripme.ripper.AbstractRipper;
|
||||
|
||||
import org.apache.commons.configuration.ConfigurationException;
|
||||
import org.apache.commons.configuration.PropertiesConfiguration;
|
||||
import org.apache.log4j.LogManager;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.apache.log4j.PropertyConfigurator;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.apache.logging.log4j.core.LoggerContext;
|
||||
import org.apache.logging.log4j.core.appender.RollingFileAppender;
|
||||
import org.apache.logging.log4j.core.appender.rolling.DefaultRolloverStrategy;
|
||||
import org.apache.logging.log4j.core.appender.rolling.SizeBasedTriggeringPolicy;
|
||||
import org.apache.logging.log4j.core.appender.rolling.TriggeringPolicy;
|
||||
import org.apache.logging.log4j.core.config.Configuration;
|
||||
import org.apache.logging.log4j.core.config.LoggerConfig;
|
||||
|
||||
/**
|
||||
* Common utility functions used in various places throughout the project.
|
||||
@@ -54,7 +59,7 @@ public class Utils {
|
||||
private static final String RIP_DIRECTORY = "rips";
|
||||
private static final String CONFIG_FILE = "rip.properties";
|
||||
private static final String OS = System.getProperty("os.name").toLowerCase();
|
||||
private static final Logger LOGGER = Logger.getLogger(Utils.class);
|
||||
private static final Logger LOGGER = LogManager.getLogger(Utils.class);
|
||||
private static final int SHORTENED_PATH_LENGTH = 12;
|
||||
|
||||
private static PropertiesConfiguration config;
|
||||
@@ -602,20 +607,32 @@ public class Utils {
|
||||
* Configures root logger, either for FILE output or just console.
|
||||
*/
|
||||
public static void configureLogger() {
|
||||
LogManager.shutdown();
|
||||
String logFile = getConfigBoolean("log.save", false) ? "log4j.file.properties" : "log4j.properties";
|
||||
try (InputStream stream = Utils.class.getClassLoader().getResourceAsStream(logFile)) {
|
||||
if (stream == null) {
|
||||
PropertyConfigurator.configure("src/main/resources/" + logFile);
|
||||
} else {
|
||||
PropertyConfigurator.configure(stream);
|
||||
LoggerContext ctx = (LoggerContext) LogManager.getContext(false);
|
||||
Configuration config = ctx.getConfiguration();
|
||||
LoggerConfig loggerConfig = config.getLoggerConfig(LogManager.ROOT_LOGGER_NAME);
|
||||
|
||||
// write to ripme.log file if checked in GUI
|
||||
boolean logSave = getConfigBoolean("log.save", false);
|
||||
if (logSave) {
|
||||
LOGGER.debug("add rolling appender ripmelog");
|
||||
TriggeringPolicy tp = SizeBasedTriggeringPolicy.createPolicy("20M");
|
||||
DefaultRolloverStrategy rs = DefaultRolloverStrategy.newBuilder().withMax("2").build();
|
||||
RollingFileAppender rolling = RollingFileAppender.newBuilder()
|
||||
.setName("ripmelog")
|
||||
.withFileName("ripme.log")
|
||||
.withFilePattern("%d{yyyy-MM-dd HH:mm:ss} %p %m%n")
|
||||
.withPolicy(tp)
|
||||
.withStrategy(rs)
|
||||
.build();
|
||||
loggerConfig.addAppender(rolling, null, null);
|
||||
} else {
|
||||
LOGGER.debug("remove rolling appender ripmelog");
|
||||
if (config.getAppender("ripmelog") != null) {
|
||||
config.getAppender("ripmelog").stop();
|
||||
}
|
||||
|
||||
LOGGER.info("Loaded " + logFile);
|
||||
} catch (IOException e) {
|
||||
LOGGER.error(e.getMessage(), e);
|
||||
loggerConfig.removeAppender("ripmelog");
|
||||
}
|
||||
|
||||
ctx.updateLoggers(); // This causes all Loggers to refetch information from their LoggerConfig.
|
||||
}
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user