diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml
index 7b2bec30..75e5ee37 100644
--- a/.github/workflows/maven.yml
+++ b/.github/workflows/maven.yml
@@ -21,6 +21,7 @@ jobs:
java-version: '8'
distribution: 'adopt'
- name: Import GPG secrets
+ if: ${{ !startsWith(github.ref, 'refs/pull') }}
run: |
echo $GPG_SECRET_KEYS | base64 --decode > gpg-private-key.txt
gpg --pinentry-mode loopback --import --batch gpg-private-key.txt
@@ -40,6 +41,7 @@ jobs:
if: ${{ !startsWith(github.ref, 'refs/tags/v') }}
run: mvn clean test -Pdebug -B -U -Dgpg.skip -Dmaven.javadoc.skip=true
- name: Deploy with Maven to OSSRH
+ if: ${{ !startsWith(github.ref, 'refs/pull') }}
run: mvn deploy --settings .maven.xml -B -U -Possrh
env:
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }}
diff --git a/player/pom.xml b/player/pom.xml
index 327516cd..6c13edc1 100644
--- a/player/pom.xml
+++ b/player/pom.xml
@@ -91,6 +91,11 @@
${lmax-disruptor.version}
runtime
+
+ org.slf4j
+ slf4j-api
+ ${slf4j-api.version}
+
diff --git a/player/src/main/java/xyz/gianlu/librespot/player/FileConfiguration.java b/player/src/main/java/xyz/gianlu/librespot/player/FileConfiguration.java
index 008b5551..e3838d4c 100644
--- a/player/src/main/java/xyz/gianlu/librespot/player/FileConfiguration.java
+++ b/player/src/main/java/xyz/gianlu/librespot/player/FileConfiguration.java
@@ -13,8 +13,8 @@
import com.electronwill.nightconfig.toml.TomlParser;
import com.spotify.connectstate.Connect;
import org.apache.logging.log4j.Level;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import xyz.gianlu.librespot.ZeroconfServer;
@@ -37,7 +37,7 @@
* @author devgianlu
*/
public final class FileConfiguration {
- private static final Logger LOGGER = LogManager.getLogger(FileConfiguration.class);
+ private static final Logger LOGGER = LoggerFactory.getLogger(FileConfiguration.class);
static {
FormatDetector.registerExtension("properties", new PropertiesFormat());
diff --git a/player/src/main/java/xyz/gianlu/librespot/player/Player.java b/player/src/main/java/xyz/gianlu/librespot/player/Player.java
index 36f9e682..0a12e3eb 100644
--- a/player/src/main/java/xyz/gianlu/librespot/player/Player.java
+++ b/player/src/main/java/xyz/gianlu/librespot/player/Player.java
@@ -8,8 +8,8 @@
import okhttp3.Request;
import okhttp3.Response;
import okhttp3.ResponseBody;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.annotations.Range;
@@ -44,7 +44,7 @@
*/
public class Player implements Closeable {
public static final int VOLUME_MAX = 65536;
- private static final Logger LOGGER = LogManager.getLogger(Player.class);
+ private static final Logger LOGGER = LoggerFactory.getLogger(Player.class);
private final ScheduledExecutorService scheduler = Executors.newSingleThreadScheduledExecutor(new NameThreadFactory((r) -> "release-line-scheduler-" + r.hashCode()));
private final Session session;
private final PlayerConfiguration conf;
@@ -61,7 +61,7 @@ public Player(@NotNull PlayerConfiguration conf, @NotNull Session session) {
this.session = session;
this.events = new EventsDispatcher(conf);
this.sink = new AudioSink(conf, ex -> {
- LOGGER.fatal("Sink error!", ex);
+ LOGGER.error("Sink error!", ex);
panicState(PlaybackMetrics.Reason.TRACK_ERROR);
});
@@ -242,10 +242,10 @@ public void load(@NotNull String uri, boolean play, boolean shuffle) {
loadSession(sessionId, play, true);
} catch (IOException | MercuryClient.MercuryException ex) {
- LOGGER.fatal("Failed loading context!", ex);
+ LOGGER.error("Failed loading context!", ex);
panicState(null);
} catch (AbsSpotifyContext.UnsupportedContextException ex) {
- LOGGER.fatal("Cannot play local tracks!", ex);
+ LOGGER.error("Cannot play local tracks!", ex);
panicState(null);
}
}
@@ -362,7 +362,7 @@ public void loadingError(@NotNull Exception ex) {
if (ex instanceof PlayableContentFeeder.ContentRestrictedException) {
LOGGER.error("Can't load track (content restricted).", ex);
} else {
- LOGGER.fatal("Failed loading track.", ex);
+ LOGGER.error("Failed loading track.", ex);
panicState(PlaybackMetrics.Reason.TRACK_ERROR);
}
}
@@ -370,9 +370,9 @@ public void loadingError(@NotNull Exception ex) {
@Override
public void playbackError(@NotNull Exception ex) {
if (ex instanceof AbsChunkedInputStream.ChunkException)
- LOGGER.fatal("Failed retrieving chunk, playback failed!", ex);
+ LOGGER.error("Failed retrieving chunk, playback failed!", ex);
else
- LOGGER.fatal("Playback error!", ex);
+ LOGGER.error("Playback error!", ex);
panicState(PlaybackMetrics.Reason.TRACK_ERROR);
}
@@ -435,7 +435,7 @@ public void playbackResumedFromHalt(int chunk, long diff) {
return state.getCurrentPlayableOrThrow();
} else {
- LOGGER.fatal("Failed loading next song: " + next);
+ LOGGER.error("Failed loading next song: " + next);
panicState(PlaybackMetrics.Reason.END_PLAY);
return null;
}
@@ -501,10 +501,10 @@ private void handlePlay(@NotNull JsonObject obj) {
if (paused == null) paused = false;
loadSession(sessionId, !paused, PlayCommandHelper.willSkipToSomething(obj));
} catch (IOException | MercuryClient.MercuryException ex) {
- LOGGER.fatal("Failed loading context!", ex);
+ LOGGER.error("Failed loading context!", ex);
panicState(null);
} catch (AbsSpotifyContext.UnsupportedContextException ex) {
- LOGGER.fatal("Cannot play local tracks!", ex);
+ LOGGER.error("Cannot play local tracks!", ex);
panicState(null);
}
}
@@ -517,10 +517,10 @@ private void handleTransferState(@NotNull TransferStateOuterClass.TransferState
events.contextChanged();
loadSession(sessionId, !cmd.getPlayback().getIsPaused(), true);
} catch (IOException | MercuryClient.MercuryException ex) {
- LOGGER.fatal("Failed loading context!", ex);
+ LOGGER.error("Failed loading context!", ex);
panicState(null);
} catch (AbsSpotifyContext.UnsupportedContextException ex) {
- LOGGER.fatal("Cannot play local tracks!", ex);
+ LOGGER.error("Cannot play local tracks!", ex);
panicState(null);
}
}
@@ -616,7 +616,7 @@ private void handleSkipNext(@Nullable JsonObject obj, @NotNull TransitionInfo tr
state.setPosition(0);
loadTrack(next == NextPlayable.OK_PLAY || next == NextPlayable.OK_REPEAT, trans);
} else {
- LOGGER.fatal("Failed loading next song: " + next);
+ LOGGER.error("Failed loading next song: " + next);
panicState(PlaybackMetrics.Reason.END_PLAY);
}
}
@@ -628,7 +628,7 @@ private void handleSkipPrev() {
state.setPosition(0);
loadTrack(true, TransitionInfo.skippedPrev(state));
} else {
- LOGGER.fatal("Failed loading previous song: " + prev);
+ LOGGER.error("Failed loading previous song: " + prev);
panicState(null);
}
} else {
@@ -644,7 +644,7 @@ private void handleSkipPrev() {
private void loadAutoplay() {
String context = state.getContextUri();
if (context == null) {
- LOGGER.fatal("Cannot load autoplay with null context!");
+ LOGGER.error("Cannot load autoplay with null context!");
panicState(null);
return;
}
@@ -673,7 +673,7 @@ private void loadAutoplay() {
LOGGER.debug("Loading context for autoplay (using radio-apollo), uri: {}", state.getContextUri());
} else {
- LOGGER.fatal("Failed retrieving autoplay context, code: " + resp.statusCode);
+ LOGGER.error("Failed retrieving autoplay context, code: " + resp.statusCode);
state.setPosition(0);
state.setState(true, false, false);
@@ -687,11 +687,11 @@ private void loadAutoplay() {
state.setState(true, true, false);
state.updated();
} else {
- LOGGER.fatal("Failed loading autoplay station!", ex);
+ LOGGER.error("Failed loading autoplay station!", ex);
panicState(null);
}
} catch (AbsSpotifyContext.UnsupportedContextException ex) {
- LOGGER.fatal("Cannot play local tracks!", ex);
+ LOGGER.error("Cannot play local tracks!", ex);
panicState(null);
}
}
diff --git a/player/src/main/java/xyz/gianlu/librespot/player/StateWrapper.java b/player/src/main/java/xyz/gianlu/librespot/player/StateWrapper.java
index 72a58bdf..7905445d 100644
--- a/player/src/main/java/xyz/gianlu/librespot/player/StateWrapper.java
+++ b/player/src/main/java/xyz/gianlu/librespot/player/StateWrapper.java
@@ -19,8 +19,8 @@
import com.spotify.transfer.SessionOuterClass;
import com.spotify.transfer.TransferStateOuterClass;
import okhttp3.*;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import xyz.gianlu.librespot.common.FisherYatesShuffle;
@@ -46,7 +46,7 @@
* @author Gianlu
*/
public class StateWrapper implements DeviceStateHandler.Listener, DealerClient.MessageListener, Closeable {
- private static final Logger LOGGER = LogManager.getLogger(StateWrapper.class);
+ private static final Logger LOGGER = LoggerFactory.getLogger(StateWrapper.class);
static {
try {
diff --git a/player/src/main/java/xyz/gianlu/librespot/player/codecs/Codec.java b/player/src/main/java/xyz/gianlu/librespot/player/codecs/Codec.java
index 40096384..a56f92b0 100644
--- a/player/src/main/java/xyz/gianlu/librespot/player/codecs/Codec.java
+++ b/player/src/main/java/xyz/gianlu/librespot/player/codecs/Codec.java
@@ -1,7 +1,7 @@
package xyz.gianlu.librespot.player.codecs;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import xyz.gianlu.librespot.audio.AbsChunkedInputStream;
@@ -19,7 +19,7 @@
*/
public abstract class Codec implements Closeable {
public static final int BUFFER_SIZE = 2048;
- private static final Logger LOGGER = LogManager.getLogger(Codec.class);
+ private static final Logger LOGGER = LoggerFactory.getLogger(Codec.class);
protected final AbsChunkedInputStream audioIn;
protected final float normalizationFactor;
protected final int duration;
@@ -70,7 +70,7 @@ public void seek(int positionMs) {
throw new IOException(String.format("Failed seeking, skip: %d, skipped: %d", skip, skipped));
}
} catch (IOException ex) {
- LOGGER.fatal("Failed seeking!", ex);
+ LOGGER.error("Failed seeking!", ex);
}
}
diff --git a/player/src/main/java/xyz/gianlu/librespot/player/codecs/VorbisOnlyAudioQuality.java b/player/src/main/java/xyz/gianlu/librespot/player/codecs/VorbisOnlyAudioQuality.java
index 74f3b8d8..747561b3 100644
--- a/player/src/main/java/xyz/gianlu/librespot/player/codecs/VorbisOnlyAudioQuality.java
+++ b/player/src/main/java/xyz/gianlu/librespot/player/codecs/VorbisOnlyAudioQuality.java
@@ -1,8 +1,8 @@
package xyz.gianlu.librespot.player.codecs;
import com.spotify.metadata.Metadata;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import xyz.gianlu.librespot.audio.format.AudioQualityPicker;
@@ -15,7 +15,7 @@
* @author Gianlu
*/
public final class VorbisOnlyAudioQuality implements AudioQualityPicker {
- private static final Logger LOGGER = LogManager.getLogger(VorbisOnlyAudioQuality.class);
+ private static final Logger LOGGER = LoggerFactory.getLogger(VorbisOnlyAudioQuality.class);
private final AudioQuality preferred;
public VorbisOnlyAudioQuality(@NotNull AudioQuality preferred) {
@@ -41,7 +41,7 @@ public static Metadata.AudioFile getVorbisFile(@NotNull List
if (vorbis != null)
LOGGER.warn("Using {} because preferred {} couldn't be found.", vorbis.getFormat(), preferred);
else
- LOGGER.fatal("Couldn't find any Vorbis file, available: {}", Utils.formatsToString(files));
+ LOGGER.error("Couldn't find any Vorbis file, available: {}", Utils.formatsToString(files));
}
return vorbis;
diff --git a/player/src/main/java/xyz/gianlu/librespot/player/crossfade/CrossfadeController.java b/player/src/main/java/xyz/gianlu/librespot/player/crossfade/CrossfadeController.java
index fc7bf2a4..45ed35f7 100644
--- a/player/src/main/java/xyz/gianlu/librespot/player/crossfade/CrossfadeController.java
+++ b/player/src/main/java/xyz/gianlu/librespot/player/crossfade/CrossfadeController.java
@@ -3,8 +3,8 @@
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import xyz.gianlu.librespot.metadata.PlayableId;
@@ -15,7 +15,7 @@
import java.util.Map;
public class CrossfadeController {
- private static final Logger LOGGER = LogManager.getLogger(CrossfadeController.class);
+ private static final Logger LOGGER = LoggerFactory.getLogger(CrossfadeController.class);
private final String playbackId;
private final int trackDuration;
private final Map fadeOutMap = new HashMap<>(8);
diff --git a/player/src/main/java/xyz/gianlu/librespot/player/events/EventsMetadataPipe.java b/player/src/main/java/xyz/gianlu/librespot/player/events/EventsMetadataPipe.java
index 46cd34c0..e8917413 100644
--- a/player/src/main/java/xyz/gianlu/librespot/player/events/EventsMetadataPipe.java
+++ b/player/src/main/java/xyz/gianlu/librespot/player/events/EventsMetadataPipe.java
@@ -1,7 +1,7 @@
package xyz.gianlu.librespot.player.events;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.annotations.Range;
@@ -32,7 +32,7 @@ public final class EventsMetadataPipe implements Player.EventsListener, Closeabl
private static final String CODE_PRGR = "70726772";
private static final String CODE_PICT = "50494354";
private static final String CODE_PFLS = "70666C73";
- private static final Logger LOGGER = LogManager.getLogger(EventsMetadataPipe.class);
+ private static final Logger LOGGER = LoggerFactory.getLogger(EventsMetadataPipe.class);
private final File file;
private FileOutputStream out;
diff --git a/player/src/main/java/xyz/gianlu/librespot/player/events/EventsShell.java b/player/src/main/java/xyz/gianlu/librespot/player/events/EventsShell.java
index 7c65e049..d944c73a 100644
--- a/player/src/main/java/xyz/gianlu/librespot/player/events/EventsShell.java
+++ b/player/src/main/java/xyz/gianlu/librespot/player/events/EventsShell.java
@@ -1,7 +1,7 @@
package xyz.gianlu.librespot.player.events;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.annotations.Range;
@@ -16,7 +16,7 @@
* @author devgianlu
*/
public final class EventsShell implements Player.EventsListener, Session.@NotNull ReconnectionListener {
- private static final Logger LOGGER = LogManager.getLogger(EventsShell.class);
+ private static final Logger LOGGER = LoggerFactory.getLogger(EventsShell.class);
private final Configuration conf;
private final Runtime runtime;
diff --git a/player/src/main/java/xyz/gianlu/librespot/player/metrics/PlaybackMetrics.java b/player/src/main/java/xyz/gianlu/librespot/player/metrics/PlaybackMetrics.java
index 46126741..af4c266b 100644
--- a/player/src/main/java/xyz/gianlu/librespot/player/metrics/PlaybackMetrics.java
+++ b/player/src/main/java/xyz/gianlu/librespot/player/metrics/PlaybackMetrics.java
@@ -1,7 +1,7 @@
package xyz.gianlu.librespot.player.metrics;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import xyz.gianlu.librespot.core.Session;
@@ -17,7 +17,7 @@
* @author devgianlu
*/
public class PlaybackMetrics {
- private static final Logger LOGGER = LogManager.getLogger(PlaybackMetrics.class);
+ private static final Logger LOGGER = LoggerFactory.getLogger(PlaybackMetrics.class);
public final PlayableId id;
final String playbackId;
final String featureVersion;
diff --git a/player/src/main/java/xyz/gianlu/librespot/player/mixing/MixingLine.java b/player/src/main/java/xyz/gianlu/librespot/player/mixing/MixingLine.java
index 7b886d76..37605b56 100644
--- a/player/src/main/java/xyz/gianlu/librespot/player/mixing/MixingLine.java
+++ b/player/src/main/java/xyz/gianlu/librespot/player/mixing/MixingLine.java
@@ -1,7 +1,7 @@
package xyz.gianlu.librespot.player.mixing;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import xyz.gianlu.librespot.player.codecs.Codec;
@@ -14,7 +14,7 @@
* @author Gianlu
*/
public final class MixingLine extends InputStream {
- private static final Logger LOGGER = LogManager.getLogger(MixingLine.class);
+ private static final Logger LOGGER = LoggerFactory.getLogger(MixingLine.class);
boolean switchFormat = false;
private GainAwareCircularBuffer fcb;
private GainAwareCircularBuffer scb;
diff --git a/player/src/main/java/xyz/gianlu/librespot/player/playback/PlayerQueue.java b/player/src/main/java/xyz/gianlu/librespot/player/playback/PlayerQueue.java
index 736d3918..50d02a0b 100644
--- a/player/src/main/java/xyz/gianlu/librespot/player/playback/PlayerQueue.java
+++ b/player/src/main/java/xyz/gianlu/librespot/player/playback/PlayerQueue.java
@@ -1,7 +1,7 @@
package xyz.gianlu.librespot.player.playback;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.jetbrains.annotations.Contract;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -17,7 +17,7 @@
* @author devgianlu
*/
final class PlayerQueue implements Closeable {
- private static final Logger LOGGER = LogManager.getLogger(PlayerQueue.class);
+ private static final Logger LOGGER = LoggerFactory.getLogger(PlayerQueue.class);
private final ExecutorService executorService = Executors.newCachedThreadPool(new NameThreadFactory((r) -> "player-queue-" + r.hashCode()));
private PlayerQueueEntry head = null;
diff --git a/player/src/main/java/xyz/gianlu/librespot/player/playback/PlayerQueueEntry.java b/player/src/main/java/xyz/gianlu/librespot/player/playback/PlayerQueueEntry.java
index f3b5d83e..fdbf5b4a 100644
--- a/player/src/main/java/xyz/gianlu/librespot/player/playback/PlayerQueueEntry.java
+++ b/player/src/main/java/xyz/gianlu/librespot/player/playback/PlayerQueueEntry.java
@@ -1,8 +1,8 @@
package xyz.gianlu.librespot.player.playback;
import javazoom.jl.decoder.BitstreamException;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import xyz.gianlu.librespot.audio.HaltListener;
@@ -43,7 +43,7 @@ class PlayerQueueEntry extends PlayerQueue.Entry implements Closeable, Runnable,
static final int INSTANT_PRELOAD = 1;
static final int INSTANT_START_NEXT = 2;
static final int INSTANT_END = 3;
- private static final Logger LOGGER = LogManager.getLogger(PlayerQueueEntry.class);
+ private static final Logger LOGGER = LoggerFactory.getLogger(PlayerQueueEntry.class);
final PlayableId playable;
final String playbackId;
private final PlayerConfiguration conf;
diff --git a/player/src/main/java/xyz/gianlu/librespot/player/playback/PlayerSession.java b/player/src/main/java/xyz/gianlu/librespot/player/playback/PlayerSession.java
index 9e9bdbf8..74b6c4ac 100644
--- a/player/src/main/java/xyz/gianlu/librespot/player/playback/PlayerSession.java
+++ b/player/src/main/java/xyz/gianlu/librespot/player/playback/PlayerSession.java
@@ -1,7 +1,7 @@
package xyz.gianlu.librespot.player.playback;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.jetbrains.annotations.Contract;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -31,7 +31,7 @@
* @author devgianlu
*/
public class PlayerSession implements Closeable, PlayerQueueEntry.Listener {
- private static final Logger LOGGER = LogManager.getLogger(PlayerSession.class);
+ private static final Logger LOGGER = LoggerFactory.getLogger(PlayerSession.class);
private final ExecutorService executorService = Executors.newCachedThreadPool(new NameThreadFactory((r) -> "player-session-" + r.hashCode()));
private final Session session;
private final AudioSink sink;
diff --git a/player/src/main/java/xyz/gianlu/librespot/player/state/DeviceStateHandler.java b/player/src/main/java/xyz/gianlu/librespot/player/state/DeviceStateHandler.java
index 7034687b..07d8edf8 100644
--- a/player/src/main/java/xyz/gianlu/librespot/player/state/DeviceStateHandler.java
+++ b/player/src/main/java/xyz/gianlu/librespot/player/state/DeviceStateHandler.java
@@ -8,11 +8,10 @@
import com.spotify.connectstate.Connect;
import com.spotify.connectstate.Player;
import com.spotify.context.ContextTrackOuterClass.ContextTrack;
-import org.apache.logging.log4j.Level;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import xyz.gianlu.librespot.Version;
import xyz.gianlu.librespot.common.AsyncWorker;
import xyz.gianlu.librespot.common.ProtoUtils;
@@ -34,7 +33,7 @@
* @author Gianlu
*/
public final class DeviceStateHandler implements Closeable, DealerClient.MessageListener, DealerClient.RequestListener {
- private static final Logger LOGGER = LogManager.getLogger(DeviceStateHandler.class);
+ private static final Logger LOGGER = LoggerFactory.getLogger(DeviceStateHandler.class);
static {
try {
@@ -155,7 +154,8 @@ public void onMessage(@NotNull String uri, @NotNull Map headers,
Connect.ClusterUpdate update = Connect.ClusterUpdate.parseFrom(payload);
long now = TimeProvider.currentTimeMillis();
- LOGGER.trace("Received cluster update at {}: {}", () -> now, () -> TextFormat.shortDebugString(update));
+ if (LOGGER.isTraceEnabled())
+ LOGGER.trace("Received cluster update at {}: {}", now, TextFormat.shortDebugString(update));
long ts = update.getCluster().getTimestamp() - 3000; // Workaround
if (!session.deviceId().equals(update.getCluster().getActiveDeviceId()) && isActive() && now > startedPlayingAt() && ts > startedPlayingAt())
@@ -243,7 +243,7 @@ public void close() {
private void putConnectState(@NotNull Connect.PutStateRequest req) {
try {
session.api().putConnectState(connectionId, req);
- if (LOGGER.getLevel().isLessSpecificThan(Level.TRACE)) {
+ if (LOGGER.isTraceEnabled()) {
LOGGER.info("Put state. {ts: {}, connId: {}, reason: {}, request: {}}", req.getClientSideTimestamp(),
Utils.truncateMiddle(connectionId, 10), req.getPutStateReason(), TextFormat.shortDebugString(putState));
} else {