Improve logging
This commit is contained in:
parent
5e13df9bd8
commit
863e349711
@ -6,6 +6,7 @@ import android.content.Intent
|
||||
import android.net.Uri
|
||||
import android.os.IBinder
|
||||
import android.os.PowerManager
|
||||
import com.elvishew.xlog.XLog
|
||||
import com.github.salomonbrys.kotson.fromJson
|
||||
import com.google.gson.JsonArray
|
||||
import com.google.gson.JsonParser
|
||||
@ -249,7 +250,10 @@ class BackupRestoreService : Service() {
|
||||
|
||||
}
|
||||
.doOnError { error ->
|
||||
Timber.e(error)
|
||||
// [EXH]
|
||||
XLog.w("> Failed to perform restore!", error)
|
||||
XLog.w("> (uri: %s)", uri)
|
||||
|
||||
writeErrorLog()
|
||||
val errorIntent = Intent(BackupConst.INTENT_FILTER).apply {
|
||||
putExtra(BackupConst.ACTION, BackupConst.ACTION_ERROR_RESTORE_DIALOG)
|
||||
@ -322,6 +326,14 @@ class BackupRestoreService : Service() {
|
||||
tracks: List<Track>): Observable<Manga> {
|
||||
return backupManager.restoreMangaFetchObservable(source, manga)
|
||||
.onErrorReturn {
|
||||
// [EXH]
|
||||
XLog.w("> Failed to restore manga!", it)
|
||||
XLog.w("> (source.id: %s, source.name: %s, manga.id: %s, manga.url: %s)",
|
||||
source.id,
|
||||
source.name,
|
||||
manga.id,
|
||||
manga.url)
|
||||
|
||||
errors.add(Date() to "${manga.title} - ${it.message}")
|
||||
manga
|
||||
}
|
||||
@ -394,6 +406,15 @@ class BackupRestoreService : Service() {
|
||||
return backupManager.restoreChapterFetchObservable(source, manga, chapters)
|
||||
// If there's any error, return empty update and continue.
|
||||
.onErrorReturn {
|
||||
// [EXH]
|
||||
XLog.w("> Failed to restore chapter!", it)
|
||||
XLog.w("> (source.id: %s, source.name: %s, manga.id: %s, manga.url: %s, chapters.size: %s)",
|
||||
source.id,
|
||||
source.name,
|
||||
manga.id,
|
||||
manga.url,
|
||||
chapters.size)
|
||||
|
||||
errors.add(Date() to "${manga.title} - ${it.message}")
|
||||
Pair(emptyList(), emptyList())
|
||||
}
|
||||
|
@ -2,6 +2,7 @@ package eu.kanade.tachiyomi.data.download
|
||||
|
||||
import android.content.Context
|
||||
import android.webkit.MimeTypeMap
|
||||
import com.elvishew.xlog.XLog
|
||||
import com.hippo.unifile.UniFile
|
||||
import com.jakewharton.rxrelay.BehaviorRelay
|
||||
import com.jakewharton.rxrelay.PublishRelay
|
||||
@ -284,6 +285,16 @@ class Downloader(
|
||||
.doOnNext { ensureSuccessfulDownload(download, mangaDir, tmpDir, chapterDirname) }
|
||||
// If the page list threw, it will resume here
|
||||
.onErrorReturn { error ->
|
||||
// [EXH]
|
||||
XLog.w("> Download error!", error)
|
||||
XLog.w("> (source.id: %s, source.name: %s, manga.id: %s, manga.url: %s, chapter.id: %s, chapter.url: %s)",
|
||||
download.source.id,
|
||||
download.source.name,
|
||||
download.manga.id,
|
||||
download.manga.url,
|
||||
download.chapter.id,
|
||||
download.chapter.url)
|
||||
|
||||
download.status = Download.ERROR
|
||||
notifier.onError(error.message, download.chapter.name)
|
||||
download
|
||||
@ -355,6 +366,15 @@ class Downloader(
|
||||
val extension = getImageExtension(response, file)
|
||||
file.renameTo("$filename.$extension")
|
||||
} catch (e: Exception) {
|
||||
// [EXH]
|
||||
XLog.w("> Failed to fetch image!", e)
|
||||
XLog.w("> (source.id: %s, source.name: %s, page.index: %s, page.url: %s, page.imageUrl: %s)",
|
||||
source.id,
|
||||
source.name,
|
||||
page.index,
|
||||
page.url,
|
||||
page.imageUrl)
|
||||
|
||||
response.close()
|
||||
file.delete()
|
||||
throw e
|
||||
|
@ -1,5 +1,6 @@
|
||||
package eu.kanade.tachiyomi.source.online
|
||||
|
||||
import com.elvishew.xlog.XLog
|
||||
import eu.kanade.tachiyomi.source.model.Page
|
||||
import rx.Observable
|
||||
|
||||
@ -7,7 +8,18 @@ fun HttpSource.getImageUrl(page: Page): Observable<Page> {
|
||||
page.status = Page.LOAD_PAGE
|
||||
return fetchImageUrl(page)
|
||||
.doOnError { page.status = Page.ERROR }
|
||||
.onErrorReturn { null }
|
||||
.onErrorReturn {
|
||||
// [EXH]
|
||||
XLog.w("> Failed to fetch image URL!", it)
|
||||
XLog.w("> (source.id: %s, source.name: %s, page.index: %s, page.url: %s, page.imageUrl: %s)",
|
||||
id,
|
||||
name,
|
||||
page.index,
|
||||
page.url,
|
||||
page.imageUrl)
|
||||
|
||||
null
|
||||
}
|
||||
.doOnNext { page.imageUrl = it }
|
||||
.map { page }
|
||||
}
|
||||
|
@ -7,6 +7,7 @@ import android.support.v4.widget.DrawerLayout
|
||||
import android.support.v7.widget.*
|
||||
import android.view.*
|
||||
import com.afollestad.materialdialogs.MaterialDialog
|
||||
import com.elvishew.xlog.XLog
|
||||
import com.f2prateek.rx.preferences.Preference
|
||||
import com.jakewharton.rxbinding.support.v7.widget.queryTextChangeEvents
|
||||
import eu.davidea.flexibleadapter.FlexibleAdapter
|
||||
@ -401,7 +402,11 @@ open class BrowseCatalogueController(bundle: Bundle) :
|
||||
* @param error the error received.
|
||||
*/
|
||||
fun onAddPageError(error: Throwable) {
|
||||
Timber.e(error)
|
||||
XLog.w("> Failed to load next catalogue page!", error)
|
||||
XLog.w("> (source.id: %s, source.name: %s)",
|
||||
presenter.source.id,
|
||||
presenter.source.name)
|
||||
|
||||
val adapter = adapter ?: return
|
||||
adapter.onLoadMoreComplete(null)
|
||||
hideProgressBar()
|
||||
|
@ -11,6 +11,7 @@ import android.support.v7.view.ActionMode
|
||||
import android.support.v7.widget.DividerItemDecoration
|
||||
import android.support.v7.widget.LinearLayoutManager
|
||||
import android.view.*
|
||||
import com.elvishew.xlog.XLog
|
||||
import com.jakewharton.rxbinding.support.v4.widget.refreshes
|
||||
import com.jakewharton.rxbinding.view.clicks
|
||||
import eu.davidea.flexibleadapter.FlexibleAdapter
|
||||
@ -223,6 +224,13 @@ class ChaptersController : NucleusController<ChaptersPresenter>(),
|
||||
fun onFetchChaptersError(error: Throwable) {
|
||||
swipe_refresh?.isRefreshing = false
|
||||
activity?.toast(error.message)
|
||||
// [EXH]
|
||||
XLog.w("> Failed to fetch chapters!", error)
|
||||
XLog.w("> (source.id: %s, source.name: %s, manga.id: %s, manga.url: %s)",
|
||||
presenter.source.id,
|
||||
presenter.source.name,
|
||||
presenter.manga.id,
|
||||
presenter.manga.url)
|
||||
}
|
||||
|
||||
fun onChapterStatusChange(download: Download) {
|
||||
|
@ -22,6 +22,7 @@ import com.bumptech.glide.load.engine.DiskCacheStrategy
|
||||
import com.bumptech.glide.load.resource.bitmap.RoundedCorners
|
||||
import com.bumptech.glide.request.target.SimpleTarget
|
||||
import com.bumptech.glide.request.transition.Transition
|
||||
import com.elvishew.xlog.XLog
|
||||
import com.jakewharton.rxbinding.support.v4.widget.refreshes
|
||||
import com.jakewharton.rxbinding.view.clicks
|
||||
import com.jakewharton.rxbinding.view.longClicks
|
||||
@ -402,9 +403,14 @@ class MangaInfoController : NucleusController<MangaInfoPresenter>(),
|
||||
fun onFetchMangaError(error: Throwable) {
|
||||
setRefreshing(false)
|
||||
activity?.toast(error.message)
|
||||
// EXH -->
|
||||
Timber.e(error, "Failed to fetch manga details!")
|
||||
// EXH <--
|
||||
|
||||
// [EXH]
|
||||
XLog.w("> Failed to fetch manga details!", error)
|
||||
XLog.w("> (source.id: %s, source.name: %s, manga.id: %s, manga.url: %s)",
|
||||
presenter.source.id,
|
||||
presenter.source.name,
|
||||
presenter.manga.id,
|
||||
presenter.manga.url)
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1,5 +1,6 @@
|
||||
package eu.kanade.tachiyomi.ui.reader.loader
|
||||
|
||||
import com.elvishew.xlog.XLog
|
||||
import eu.kanade.tachiyomi.data.database.models.Manga
|
||||
import eu.kanade.tachiyomi.data.download.DownloadManager
|
||||
import eu.kanade.tachiyomi.data.preference.getOrDefault
|
||||
@ -62,7 +63,19 @@ class ChapterLoader(
|
||||
}
|
||||
}
|
||||
.toCompletable()
|
||||
.doOnError { chapter.state = ReaderChapter.State.Error(it) }
|
||||
.doOnError {
|
||||
// [EXH]
|
||||
XLog.w("> Failed to fetch page list!", it)
|
||||
XLog.w("> (source.id: %s, source.name: %s, manga.id: %s, manga.url: %s, chapter.id: %s, chapter.url: %s)",
|
||||
source.id,
|
||||
source.name,
|
||||
manga.id,
|
||||
manga.url,
|
||||
chapter.chapter.id,
|
||||
chapter.chapter.url)
|
||||
|
||||
chapter.state = ReaderChapter.State.Error(it)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1,5 +1,6 @@
|
||||
package eu.kanade.tachiyomi.ui.reader.loader
|
||||
|
||||
import com.elvishew.xlog.XLog
|
||||
import eu.kanade.tachiyomi.data.cache.ChapterCache
|
||||
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
||||
import eu.kanade.tachiyomi.data.preference.getOrDefault
|
||||
@ -203,7 +204,20 @@ class HttpPageLoader(
|
||||
page.status = Page.LOAD_PAGE
|
||||
return fetchImageUrl(page)
|
||||
.doOnError { page.status = Page.ERROR }
|
||||
.onErrorReturn { null }
|
||||
.onErrorReturn {
|
||||
// [EXH]
|
||||
XLog.w("> Failed to fetch image URL!", it)
|
||||
XLog.w("> (source.id: %s, source.name: %s, page.index: %s, page.url: %s, page.imageUrl: %s, chapter.id: %s, chapter.url: %s)",
|
||||
source.id,
|
||||
source.name,
|
||||
page.index,
|
||||
page.url,
|
||||
page.imageUrl,
|
||||
page.chapter.chapter.id,
|
||||
page.chapter.chapter.url)
|
||||
|
||||
null
|
||||
}
|
||||
.doOnNext { page.imageUrl = it }
|
||||
.map { page }
|
||||
}
|
||||
@ -229,7 +243,20 @@ class HttpPageLoader(
|
||||
page.stream = { chapterCache.getImageFile(imageUrl).inputStream() }
|
||||
page.status = Page.READY
|
||||
}
|
||||
.doOnError { page.status = Page.ERROR }
|
||||
.doOnError {
|
||||
// [EXH]
|
||||
XLog.w("> Failed to fetch image!", it)
|
||||
XLog.w("> (source.id: %s, source.name: %s, page.index: %s, page.url: %s, page.imageUrl: %s, chapter.id: %s, chapter.url: %s)",
|
||||
source.id,
|
||||
source.name,
|
||||
page.index,
|
||||
page.url,
|
||||
page.imageUrl,
|
||||
page.chapter.chapter.id,
|
||||
page.chapter.chapter.url)
|
||||
|
||||
page.status = Page.ERROR
|
||||
}
|
||||
.onErrorReturn { page }
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user