Skip to content

Commit cc2a0ee

Browse files
Add logging functionality to extractor and add some logging
Set ConsoleLogger globally for all tests
1 parent 912a989 commit cc2a0ee

9 files changed

Lines changed: 149 additions & 1 deletion

File tree

extractor/src/main/java/org/schabi/newpipe/extractor/Extractor.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import org.schabi.newpipe.extractor.localization.ContentCountry;
88
import org.schabi.newpipe.extractor.localization.Localization;
99
import org.schabi.newpipe.extractor.localization.TimeAgoParser;
10+
import org.schabi.newpipe.extractor.utils.ExtractorLogger;
1011

1112
import javax.annotation.Nonnull;
1213
import javax.annotation.Nullable;
@@ -15,6 +16,8 @@
1516
import java.util.Objects;
1617

1718
public abstract class Extractor {
19+
private final String TAG = getClass().getSimpleName() + "@" + hashCode();
20+
1821
/**
1922
* {@link StreamingService} currently related to this extractor.<br>
2023
* Useful for getting other things from a service (like the url handlers for
@@ -54,7 +57,9 @@ public LinkHandler getLinkHandler() {
5457
* @throws ExtractionException if the pages content is not understood
5558
*/
5659
public void fetchPage() throws IOException, ExtractionException {
60+
ExtractorLogger.d(TAG, "base fetchPage called");
5761
if (pageFetched) {
62+
ExtractorLogger.d(TAG, "Page already fetched");
5863
return;
5964
}
6065
onFetchPage(downloader);

extractor/src/main/java/org/schabi/newpipe/extractor/Info.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import org.schabi.newpipe.extractor.exceptions.ExtractionException;
44
import org.schabi.newpipe.extractor.linkhandler.LinkHandler;
5+
import org.schabi.newpipe.extractor.utils.ExtractorLogger;
56

67
import java.io.Serializable;
78
import java.util.ArrayList;
@@ -10,6 +11,7 @@
1011

1112
public abstract class Info implements Serializable {
1213

14+
private static final String TAG = "Info";
1315
private final int serviceId;
1416
/**
1517
* Id of this Info object <br>
@@ -52,6 +54,7 @@ public Info(final int serviceId,
5254
this.url = url;
5355
this.originalUrl = originalUrl;
5456
this.name = name;
57+
ExtractorLogger.d(TAG, "Base Created " + this);
5558
}
5659

5760
public Info(final int serviceId, final LinkHandler linkHandler, final String name) {

extractor/src/main/java/org/schabi/newpipe/extractor/NewPipe.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import org.schabi.newpipe.extractor.exceptions.ExtractionException;
2525
import org.schabi.newpipe.extractor.localization.ContentCountry;
2626
import org.schabi.newpipe.extractor.localization.Localization;
27+
import org.schabi.newpipe.extractor.utils.ExtractorLogger;
2728

2829
import java.util.List;
2930

@@ -34,6 +35,7 @@
3435
* Provides access to streaming services supported by NewPipe.
3536
*/
3637
public final class NewPipe {
38+
private static final String TAG = NewPipe.class.getSimpleName();
3739
private static Downloader downloader;
3840
private static Localization preferredLocalization;
3941
private static ContentCountry preferredContentCountry;
@@ -42,15 +44,19 @@ private NewPipe() {
4244
}
4345

4446
public static void init(final Downloader d) {
47+
ExtractorLogger.d(TAG, "Default init called");
4548
init(d, Localization.DEFAULT);
4649
}
4750

4851
public static void init(final Downloader d, final Localization l) {
52+
ExtractorLogger.d(TAG, "Default init called with localization");
4953
init(d, l, l.getCountryCode().isEmpty()
5054
? ContentCountry.DEFAULT : new ContentCountry(l.getCountryCode()));
5155
}
5256

5357
public static void init(final Downloader d, final Localization l, final ContentCountry c) {
58+
ExtractorLogger.d(TAG, "Initializing with downloader: "
59+
+ d.getClass().getSimpleName() + ", " + l + ", " + c);
5460
downloader = d;
5561
preferredLocalization = l;
5662
preferredContentCountry = c;

extractor/src/main/java/org/schabi/newpipe/extractor/stream/StreamInfo.java

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import org.schabi.newpipe.extractor.exceptions.ExtractionException;
3232
import org.schabi.newpipe.extractor.localization.DateWrapper;
3333
import org.schabi.newpipe.extractor.utils.ExtractorHelper;
34+
import org.schabi.newpipe.extractor.utils.ExtractorLogger;
3435

3536
import java.io.IOException;
3637
import java.util.List;
@@ -44,7 +45,7 @@
4445
* Info object for opened contents, i.e. the content ready to play.
4546
*/
4647
public class StreamInfo extends Info {
47-
48+
private static final String TAG = StreamInfo.class.getSimpleName();
4849
public static class StreamExtractException extends ExtractionException {
4950
StreamExtractException(final String message) {
5051
super(message);
@@ -61,19 +62,37 @@ public StreamInfo(final int serviceId,
6162
super(serviceId, id, url, originalUrl, name);
6263
this.streamType = streamType;
6364
this.ageLimit = ageLimit;
65+
ExtractorLogger.d(TAG, "Created " + this);
66+
67+
}
68+
69+
@Override
70+
public String toString() {
71+
return TAG + "["
72+
+ "serviceId=" + getServiceId()
73+
+ ", url='" + getUrl() + '\''
74+
+ ", originalUrl='" + getOriginalUrl() + '\''
75+
+ ", id='" + getId() + '\''
76+
+ ", name='" + getName() + '\''
77+
+ ", streamType=" + streamType
78+
+ ", ageLimit=" + ageLimit
79+
+ ']';
6480
}
6581

6682
public static StreamInfo getInfo(final String url) throws IOException, ExtractionException {
83+
ExtractorLogger.d(TAG, "getInfo(" + url + ")");
6784
return getInfo(NewPipe.getServiceByUrl(url), url);
6885
}
6986

7087
public static StreamInfo getInfo(@Nonnull final StreamingService service,
7188
final String url) throws IOException, ExtractionException {
89+
ExtractorLogger.d(TAG, "getInfo(" + service.getClass().getSimpleName() + ", " + url + ")");
7290
return getInfo(service.getStreamExtractor(url));
7391
}
7492

7593
public static StreamInfo getInfo(@Nonnull final StreamExtractor extractor)
7694
throws ExtractionException, IOException {
95+
ExtractorLogger.d(TAG, "getInfo(" + extractor.getClass().getSimpleName() + ")");
7796
extractor.fetchPage();
7897
final StreamInfo streamInfo;
7998
try {
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
package org.schabi.newpipe.extractor.utils;
2+
3+
public final class ExtractorLogger {
4+
5+
private ExtractorLogger() { }
6+
7+
private static Logger logger = new EmptyLogger();
8+
9+
public static void setLogger(final Logger customLogger) {
10+
logger = customLogger;
11+
}
12+
13+
public static void d(final String tag, final String msg) {
14+
logger.debug(tag, msg);
15+
}
16+
17+
public static void d(final String tag, final String msg, final Throwable t) {
18+
logger.debug(tag, msg, t);
19+
}
20+
21+
public static void w(final String tag, final String msg) {
22+
logger.warn(tag, msg);
23+
}
24+
25+
public static void w(final String tag, final String msg, final Throwable t) {
26+
logger.warn(tag, msg, t);
27+
}
28+
29+
public static void e(final String tag, final String msg) {
30+
logger.error(tag, msg);
31+
}
32+
33+
public static void e(final String tag, final String msg, final Throwable t) {
34+
logger.error(tag, msg, t);
35+
}
36+
37+
38+
private static final class EmptyLogger implements Logger {
39+
public void debug(final String tag, final String msg) { }
40+
41+
@Override
42+
public void debug(final String tag, final String msg, final Throwable throwable) { }
43+
44+
public void warn(final String tag, final String msg) { }
45+
46+
@Override
47+
public void warn(final String tag, final String msg, final Throwable t) { }
48+
49+
public void error(final String tag, final String msg) { }
50+
51+
public void error(final String tag, final String msg, final Throwable t) { }
52+
}
53+
54+
/**
55+
* Logger that prints to stdout
56+
*/
57+
public static final class ConsoleLogger implements Logger {
58+
public void debug(final String tag, final String msg) {
59+
System.out.println("[DEBUG][" + tag + "] " + msg);
60+
}
61+
62+
@Override
63+
public void debug(final String tag, final String msg, final Throwable throwable) {
64+
debug(tag, msg);
65+
throwable.printStackTrace(System.err);
66+
}
67+
68+
public void warn(final String tag, final String msg) {
69+
System.out.println("[WARN ][" + tag + "] " + msg);
70+
}
71+
72+
@Override
73+
public void warn(final String tag, final String msg, final Throwable t) {
74+
warn(tag, msg);
75+
t.printStackTrace(System.err);
76+
}
77+
78+
public void error(final String tag, final String msg) {
79+
System.err.println("[ERROR][" + tag + "] " + msg);
80+
}
81+
82+
public void error(final String tag, final String msg, final Throwable t) {
83+
System.err.println("[ERROR][" + tag + "] " + msg);
84+
t.printStackTrace(System.err);
85+
}
86+
}
87+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package org.schabi.newpipe.extractor.utils;
2+
3+
public interface Logger {
4+
void debug(String tag, String message);
5+
void debug(String tag, String message, Throwable throwable);
6+
void warn(String tag, String message);
7+
void warn(String tag, String message, Throwable throwable);
8+
void error(String tag, String message);
9+
void error(String tag, String message, Throwable t);
10+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package org.schabi.newpipe.extractor;
2+
3+
import org.junit.jupiter.api.extension.BeforeAllCallback;
4+
import org.junit.jupiter.api.extension.ExtensionContext;
5+
import org.schabi.newpipe.extractor.utils.ExtractorLogger;
6+
7+
public class LoggerExtension implements BeforeAllCallback {
8+
private static boolean set = false;
9+
10+
@Override
11+
public void beforeAll(ExtensionContext context) {
12+
if (set) return;
13+
set = true;
14+
ExtractorLogger.setLogger(new ExtractorLogger.ConsoleLogger());
15+
}
16+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
org.schabi.newpipe.extractor.LoggerExtension
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
junit.jupiter.extensions.autodetection.enabled = true

0 commit comments

Comments
 (0)