aboutsummaryrefslogtreecommitdiff
path: root/internal/reader/handler/handler.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/reader/handler/handler.go')
-rw-r--r--internal/reader/handler/handler.go59
1 files changed, 46 insertions, 13 deletions
diff --git a/internal/reader/handler/handler.go b/internal/reader/handler/handler.go
index 43ccfe47..91b7e394 100644
--- a/internal/reader/handler/handler.go
+++ b/internal/reader/handler/handler.go
@@ -4,22 +4,19 @@
package handler // import "miniflux.app/v2/internal/reader/handler"
import (
- "fmt"
- "time"
+ "log/slog"
"miniflux.app/v2/internal/config"
"miniflux.app/v2/internal/errors"
"miniflux.app/v2/internal/http/client"
"miniflux.app/v2/internal/integration"
"miniflux.app/v2/internal/locale"
- "miniflux.app/v2/internal/logger"
"miniflux.app/v2/internal/model"
"miniflux.app/v2/internal/reader/browser"
"miniflux.app/v2/internal/reader/icon"
"miniflux.app/v2/internal/reader/parser"
"miniflux.app/v2/internal/reader/processor"
"miniflux.app/v2/internal/storage"
- "miniflux.app/v2/internal/timer"
)
var (
@@ -30,7 +27,10 @@ var (
// CreateFeed fetch, parse and store a new feed.
func CreateFeed(store *storage.Storage, userID int64, feedCreationRequest *model.FeedCreationRequest) (*model.Feed, error) {
- defer timer.ExecutionTime(time.Now(), fmt.Sprintf("[CreateFeed] FeedURL=%s", feedCreationRequest.FeedURL))
+ slog.Debug("Begin feed creation process",
+ slog.Int64("user_id", userID),
+ slog.String("feed_url", feedCreationRequest.FeedURL),
+ )
user, storeErr := store.UserByID(userID)
if storeErr != nil {
@@ -90,7 +90,11 @@ func CreateFeed(store *storage.Storage, userID int64, feedCreationRequest *model
return nil, storeErr
}
- logger.Debug("[CreateFeed] Feed saved with ID: %d", subscription.ID)
+ slog.Debug("Created feed",
+ slog.Int64("user_id", userID),
+ slog.Int64("feed_id", subscription.ID),
+ slog.String("feed_url", subscription.FeedURL),
+ )
checkFeedIcon(
store,
@@ -106,7 +110,12 @@ func CreateFeed(store *storage.Storage, userID int64, feedCreationRequest *model
// RefreshFeed refreshes a feed.
func RefreshFeed(store *storage.Storage, userID, feedID int64, forceRefresh bool) error {
- defer timer.ExecutionTime(time.Now(), fmt.Sprintf("[RefreshFeed] feedID=%d", feedID))
+ slog.Debug("Begin feed refresh process",
+ slog.Int64("user_id", userID),
+ slog.Int64("feed_id", feedID),
+ slog.Bool("force_refresh", forceRefresh),
+ )
+
user, storeErr := store.UserByID(userID)
if storeErr != nil {
return storeErr
@@ -164,7 +173,10 @@ func RefreshFeed(store *storage.Storage, userID, feedID int64, forceRefresh bool
}
if originalFeed.IgnoreHTTPCache || response.IsModified(originalFeed.EtagHeader, originalFeed.LastModifiedHeader) {
- logger.Debug("[RefreshFeed] Feed #%d has been modified", feedID)
+ slog.Debug("Feed modified",
+ slog.Int64("user_id", userID),
+ slog.Int64("feed_id", feedID),
+ )
updatedFeed, parseErr := parser.ParseFeed(response.EffectiveURL, response.BodyAsString())
if parseErr != nil {
@@ -187,7 +199,11 @@ func RefreshFeed(store *storage.Storage, userID, feedID int64, forceRefresh bool
userIntegrations, intErr := store.Integration(userID)
if intErr != nil {
- logger.Error("[RefreshFeed] Fetching integrations for user %d failed: %v; the refresh process will go on, but no integrations will run this time.", userID, intErr)
+ slog.Error("Fetching integrations failed; the refresh process will go on, but no integrations will run this time",
+ slog.Int64("user_id", userID),
+ slog.Int64("feed_id", feedID),
+ slog.Any("error", intErr),
+ )
} else if userIntegrations != nil && len(newEntries) > 0 {
go integration.PushEntries(originalFeed, newEntries, userIntegrations)
}
@@ -206,7 +222,10 @@ func RefreshFeed(store *storage.Storage, userID, feedID int64, forceRefresh bool
originalFeed.AllowSelfSignedCertificates,
)
} else {
- logger.Debug("[RefreshFeed] Feed #%d not modified", feedID)
+ slog.Debug("Feed not modified",
+ slog.Int64("user_id", userID),
+ slog.Int64("feed_id", feedID),
+ )
}
originalFeed.ResetErrorCounter()
@@ -224,12 +243,26 @@ func checkFeedIcon(store *storage.Storage, feedID int64, websiteURL, feedIconURL
if !store.HasIcon(feedID) {
icon, err := icon.FindIcon(websiteURL, feedIconURL, userAgent, fetchViaProxy, allowSelfSignedCertificates)
if err != nil {
- logger.Debug(`[CheckFeedIcon] %v (feedID=%d websiteURL=%s)`, err, feedID, websiteURL)
+ slog.Warn("Unable to find feed icon",
+ slog.Int64("feed_id", feedID),
+ slog.String("website_url", websiteURL),
+ slog.String("feed_icon_url", feedIconURL),
+ slog.Any("error", err),
+ )
} else if icon == nil {
- logger.Debug(`[CheckFeedIcon] No icon found (feedID=%d websiteURL=%s)`, feedID, websiteURL)
+ slog.Debug("No icon found",
+ slog.Int64("feed_id", feedID),
+ slog.String("website_url", websiteURL),
+ slog.String("feed_icon_url", feedIconURL),
+ )
} else {
if err := store.CreateFeedIcon(feedID, icon); err != nil {
- logger.Debug(`[CheckFeedIcon] %v (feedID=%d websiteURL=%s)`, err, feedID, websiteURL)
+ slog.Error("Unable to store feed icon",
+ slog.Int64("feed_id", feedID),
+ slog.String("website_url", websiteURL),
+ slog.String("feed_icon_url", feedIconURL),
+ slog.Any("error", err),
+ )
}
}
}