refactor: standardize logger field name to LOG across all production classes

This commit is contained in:
2026-04-21 16:05:20 +02:00
parent c9c5dc6eab
commit f62d01c30a
12 changed files with 80 additions and 80 deletions
@@ -14,7 +14,7 @@ public class SchemaMigration implements ApplicationRunner {
// TODO: Code smell Runtime schema migration logic duplicates Flyway responsibilities and is difficult to reason about/test.
private static final Logger logger = LoggerFactory.getLogger(SchemaMigration.class);
private static final Logger LOG = LoggerFactory.getLogger(SchemaMigration.class);
private final JdbcTemplate jdbcTemplate;
@@ -46,9 +46,9 @@ public class SchemaMigration implements ApplicationRunner {
END;
"""
);
logger.info("Ensured SPRING_SESSION_ATTRIBUTES upsert trigger exists");
LOG.info("Ensured SPRING_SESSION_ATTRIBUTES upsert trigger exists");
} catch (DataAccessException ex) {
logger.warn("Unable to ensure SPRING_SESSION_ATTRIBUTES upsert trigger", ex);
LOG.warn("Unable to ensure SPRING_SESSION_ATTRIBUTES upsert trigger", ex);
}
}
@@ -57,7 +57,7 @@ public class SchemaMigration implements ApplicationRunner {
try {
columns = jdbcTemplate.query("PRAGMA table_info(channels)", (rs, rowNum) -> rs.getString("name"));
} catch (DataAccessException ex) {
logger.warn("Unable to inspect channels table for canvas columns", ex);
LOG.warn("Unable to inspect channels table for canvas columns", ex);
return;
}
@@ -76,7 +76,7 @@ public class SchemaMigration implements ApplicationRunner {
try {
columns = jdbcTemplate.query("PRAGMA table_info(assets)", (rs, rowNum) -> rs.getString("name"));
} catch (DataAccessException ex) {
logger.warn("Unable to inspect assets table for asset columns", ex);
LOG.warn("Unable to inspect assets table for asset columns", ex);
return;
}
@@ -169,7 +169,7 @@ public class SchemaMigration implements ApplicationRunner {
ensureScriptAssetColumns();
backfillAssetTypes(assetColumns);
} catch (DataAccessException ex) {
logger.warn("Unable to ensure asset type tables", ex);
LOG.warn("Unable to ensure asset type tables", ex);
}
}
@@ -185,7 +185,7 @@ public class SchemaMigration implements ApplicationRunner {
"""
);
} catch (DataAccessException ex) {
logger.warn("Unable to ensure marketplace script hearts table", ex);
LOG.warn("Unable to ensure marketplace script hearts table", ex);
}
}
@@ -197,7 +197,7 @@ public class SchemaMigration implements ApplicationRunner {
attachmentColumns =
jdbcTemplate.query("PRAGMA table_info(script_asset_attachments)", (rs, rowNum) -> rs.getString("name"));
} catch (DataAccessException ex) {
logger.warn("Unable to inspect script asset tables", ex);
LOG.warn("Unable to inspect script asset tables", ex);
return;
}
@@ -236,7 +236,7 @@ public class SchemaMigration implements ApplicationRunner {
);
jdbcTemplate.execute("UPDATE script_asset_attachments SET file_id = id WHERE file_id IS NULL");
} catch (DataAccessException ex) {
logger.warn("Unable to backfill script asset files", ex);
LOG.warn("Unable to backfill script asset files", ex);
}
}
@@ -295,7 +295,7 @@ public class SchemaMigration implements ApplicationRunner {
"""
);
} catch (DataAccessException ex) {
logger.warn("Unable to backfill asset type tables", ex);
LOG.warn("Unable to backfill asset type tables", ex);
}
}
@@ -326,9 +326,9 @@ public class SchemaMigration implements ApplicationRunner {
columnName +
" IS NULL"
);
logger.info("Added missing column '{}' to {} table", columnName, tableName);
LOG.info("Added missing column '{}' to {} table", columnName, tableName);
} catch (DataAccessException ex) {
logger.warn("Failed to add column '{}' to {} table", columnName, tableName, ex);
LOG.warn("Failed to add column '{}' to {} table", columnName, tableName, ex);
}
}
@@ -350,9 +350,9 @@ public class SchemaMigration implements ApplicationRunner {
)
"""
);
logger.info("Ensured oauth2_authorized_client table exists");
LOG.info("Ensured oauth2_authorized_client table exists");
} catch (DataAccessException ex) {
logger.warn("Unable to ensure oauth2_authorized_client table", ex);
LOG.warn("Unable to ensure oauth2_authorized_client table", ex);
}
}
@@ -394,10 +394,10 @@ public class SchemaMigration implements ApplicationRunner {
" IS NOT NULL"
);
if (updated > 0) {
logger.info("Normalized {} rows in oauth2_authorized_client.{}", updated, column);
LOG.info("Normalized {} rows in oauth2_authorized_client.{}", updated, column);
}
} catch (DataAccessException ex) {
logger.warn("Unable to normalize oauth2_authorized_client.{} timestamps", column, ex);
LOG.warn("Unable to normalize oauth2_authorized_client.{} timestamps", column, ex);
}
}
}
@@ -12,7 +12,7 @@ import org.springframework.util.unit.DataSize;
@Component
public class SystemEnvironmentValidator {
private static final Logger log = LoggerFactory.getLogger(SystemEnvironmentValidator.class);
private static final Logger LOG = LoggerFactory.getLogger(SystemEnvironmentValidator.class);
private final Environment environment;
@@ -63,7 +63,7 @@ public class SystemEnvironmentValidator {
environment.getProperty("org.springframework.boot.test.context.SpringBootTestContextBootstrapper")
)
) {
log.info("Skipping environment validation in test context");
LOG.info("Skipping environment validation in test context");
return;
}
@@ -88,19 +88,19 @@ public class SystemEnvironmentValidator {
throw new IllegalStateException("Missing or invalid environment variables:\n" + missing);
}
log.info("Environment validation successful:");
log.info(" - TWITCH_CLIENT_ID: {}", redact(twitchClientId));
log.info(" - TWITCH_CLIENT_SECRET: {}", redact(twitchClientSecret));
log.info(" - SPRING_SERVLET_MULTIPART_MAX_FILE_SIZE: {} ({} bytes)", springMaxFileSize, maxUploadBytes);
log.info(" - SPRING_SERVLET_MULTIPART_MAX_REQUEST_SIZE: {} ({} bytes)", springMaxRequestSize, maxRequestBytes);
log.info(" - IMGFLOAT_DB_PATH: {}", dbPath);
log.info(" - IMGFLOAT_AUDIT_DB_PATH: {}", auditDbPath);
log.info(" - IMGFLOAT_INITIAL_TWITCH_USERNAME_SYSADMIN: {}", initialSysadmin);
log.info(" - IMGFLOAT_ASSETS_PATH: {}", assetsPath);
log.info(" - IMGFLOAT_PREVIEWS_PATH: {}", previewsPath);
log.info(" - IMGFLOAT_GITHUB_CLIENT_OWNER: {}", githubClientOwner);
log.info(" - IMGFLOAT_GITHUB_CLIENT_REPO: {}", githubClientRepo);
log.info(" - IMGFLOAT_GITHUB_CLIENT_VERSION: {}", githubClientVersion);
LOG.info("Environment validation successful:");
LOG.info(" - TWITCH_CLIENT_ID: {}", redact(twitchClientId));
LOG.info(" - TWITCH_CLIENT_SECRET: {}", redact(twitchClientSecret));
LOG.info(" - SPRING_SERVLET_MULTIPART_MAX_FILE_SIZE: {} ({} bytes)", springMaxFileSize, maxUploadBytes);
LOG.info(" - SPRING_SERVLET_MULTIPART_MAX_REQUEST_SIZE: {} ({} bytes)", springMaxRequestSize, maxRequestBytes);
LOG.info(" - IMGFLOAT_DB_PATH: {}", dbPath);
LOG.info(" - IMGFLOAT_AUDIT_DB_PATH: {}", auditDbPath);
LOG.info(" - IMGFLOAT_INITIAL_TWITCH_USERNAME_SYSADMIN: {}", initialSysadmin);
LOG.info(" - IMGFLOAT_ASSETS_PATH: {}", assetsPath);
LOG.info(" - IMGFLOAT_PREVIEWS_PATH: {}", previewsPath);
LOG.info(" - IMGFLOAT_GITHUB_CLIENT_OWNER: {}", githubClientOwner);
LOG.info(" - IMGFLOAT_GITHUB_CLIENT_REPO: {}", githubClientRepo);
LOG.info(" - IMGFLOAT_GITHUB_CLIENT_VERSION: {}", githubClientVersion);
}
private void checkString(String value, String name, StringBuilder missing) {
@@ -18,7 +18,7 @@ import org.springframework.transaction.annotation.Transactional;
@Service
public class AssetCleanupService {
private static final Logger logger = LoggerFactory.getLogger(AssetCleanupService.class);
private static final Logger LOG = LoggerFactory.getLogger(AssetCleanupService.class);
private final AssetRepository assetRepository;
private final AssetStorageService assetStorageService;
@@ -41,7 +41,7 @@ public class AssetCleanupService {
@EventListener(ApplicationReadyEvent.class)
@Transactional(readOnly = true)
public void cleanup() {
logger.info("Collecting referenced assets");
LOG.info("Collecting referenced assets");
Set<String> referencedIds = assetRepository
.findAll()
@@ -15,7 +15,7 @@ import org.springframework.stereotype.Service;
@Service
public class AssetStorageService {
private static final Logger logger = LoggerFactory.getLogger(AssetStorageService.class);
private static final Logger LOG = LoggerFactory.getLogger(AssetStorageService.class);
private static final String DEFAULT_PREVIEW_MEDIA_TYPE = "image/png";
private final Path assetRoot;
@@ -57,7 +57,7 @@ public class AssetStorageService {
StandardOpenOption.TRUNCATE_EXISTING,
StandardOpenOption.WRITE
);
logger.info("Wrote asset to {}", file);
LOG.info("Wrote asset to {}", file);
}
public void storePreview(String broadcaster, String assetId, byte[] previewBytes) throws IOException {
@@ -73,7 +73,7 @@ public class AssetStorageService {
StandardOpenOption.TRUNCATE_EXISTING,
StandardOpenOption.WRITE
);
logger.info("Wrote asset preview to {}", file);
LOG.info("Wrote asset preview to {}", file);
}
public Optional<AssetContent> loadAssetFile(String broadcaster, String assetId, String mediaType) {
@@ -85,7 +85,7 @@ public class AssetStorageService {
byte[] bytes = Files.readAllBytes(file);
return Optional.of(new AssetContent(bytes, mediaType));
} catch (Exception e) {
logger.warn("Failed to load asset {}", assetId, e);
LOG.warn("Failed to load asset {}", assetId, e);
return Optional.empty();
}
}
@@ -98,7 +98,7 @@ public class AssetStorageService {
byte[] bytes = Files.readAllBytes(file);
return Optional.of(new AssetContent(bytes, DEFAULT_PREVIEW_MEDIA_TYPE));
} catch (Exception e) {
logger.warn("Failed to load preview {}", assetId, e);
LOG.warn("Failed to load preview {}", assetId, e);
return Optional.empty();
}
}
@@ -126,7 +126,7 @@ public class AssetStorageService {
Files.deleteIfExists(previewPath(broadcaster, assetId));
}
} catch (Exception e) {
logger.warn("Failed to delete asset {}", assetId, e);
LOG.warn("Failed to delete asset {}", assetId, e);
}
}
@@ -146,13 +146,13 @@ public class AssetStorageService {
.forEach((p) -> {
try {
Files.delete(p);
logger.warn("Deleted orphan file {}", p);
LOG.warn("Deleted orphan file {}", p);
} catch (IOException e) {
logger.error("Failed to delete {}", p, e);
LOG.error("Failed to delete {}", p, e);
}
});
} catch (IOException e) {
logger.error("Failed to walk {}", root, e);
LOG.error("Failed to walk {}", root, e);
}
}
@@ -57,7 +57,7 @@ import org.springframework.web.server.ResponseStatusException;
@Service
public class ChannelDirectoryService {
private static final Logger logger = LoggerFactory.getLogger(ChannelDirectoryService.class);
private static final Logger LOG = LoggerFactory.getLogger(ChannelDirectoryService.class);
private static final Pattern SAFE_FILENAME = Pattern.compile("[^a-zA-Z0-9._ -]");
private static final String DEFAULT_CODE_MEDIA_TYPE = "application/javascript";
private static final EnumSet<AssetType> VISUAL_ASSET_TYPES = EnumSet.of(
@@ -494,7 +494,7 @@ public class ChannelDirectoryService {
try {
sourceScript = scriptAssetRepository.findById(scriptId).filter(ScriptAsset::isPublic).orElse(null);
} catch (DataAccessException ex) {
logger.warn("Unable to import marketplace script {}", scriptId, ex);
LOG.warn("Unable to import marketplace script {}", scriptId, ex);
return Optional.empty();
}
Asset sourceAsset = sourceScript == null ? null : assetRepository.findById(scriptId).orElse(null);
@@ -660,7 +660,7 @@ public class ChannelDirectoryService {
try {
return Optional.of(Files.readAllBytes(path));
} catch (IOException ex) {
logger.warn("Failed to read marketplace attachment {}", path, ex);
LOG.warn("Failed to read marketplace attachment {}", path, ex);
return Optional.empty();
}
}
@@ -24,7 +24,7 @@ public class MarketplaceScriptSeedLoader {
// TODO: Code smell Large parser/loader with many branching paths; consider decomposing into smaller collaborators.
private static final Logger logger = LoggerFactory.getLogger(MarketplaceScriptSeedLoader.class);
private static final Logger LOG = LoggerFactory.getLogger(MarketplaceScriptSeedLoader.class);
private static final String METADATA_FILENAME = "metadata.json";
private static final String SOURCE_FILENAME = "source.js";
private static final String LOGO_FILENAME = "logo.png";
@@ -127,7 +127,7 @@ public class MarketplaceScriptSeedLoader {
return List.of();
}
if (!Files.isDirectory(rootPath)) {
logger.warn("Marketplace script path {} is not a directory", rootPath);
LOG.warn("Marketplace script path {} is not a directory", rootPath);
return List.of();
}
List<SeedScript> loaded = new ArrayList<>();
@@ -139,7 +139,7 @@ public class MarketplaceScriptSeedLoader {
loadScriptDirectory(scriptDir).ifPresent(loaded::add);
}
} catch (IOException ex) {
logger.warn("Failed to read marketplace script directory {}", rootPath, ex);
LOG.warn("Failed to read marketplace script directory {}", rootPath, ex);
}
return List.copyOf(loaded);
}
@@ -147,11 +147,11 @@ public class MarketplaceScriptSeedLoader {
private Optional<SeedScript> loadScriptDirectory(Path scriptDir) {
ScriptSeedMetadata metadata = ScriptSeedMetadata.read(scriptDir.resolve(METADATA_FILENAME));
if (metadata == null) {
logger.warn("Skipping marketplace script {}, missing {}", scriptDir, METADATA_FILENAME);
LOG.warn("Skipping marketplace script {}, missing {}", scriptDir, METADATA_FILENAME);
return Optional.empty();
}
if (metadata.name() == null || metadata.name().isBlank()) {
logger.warn("Skipping marketplace script {}, missing name", scriptDir);
LOG.warn("Skipping marketplace script {}, missing name", scriptDir);
return Optional.empty();
}
String sourceMediaType = detectMediaType(scriptDir.resolve(SOURCE_FILENAME), DEFAULT_SOURCE_MEDIA_TYPE);
@@ -161,7 +161,7 @@ public class MarketplaceScriptSeedLoader {
Path sourcePath = resolveOptionalFile(scriptDir.resolve(SOURCE_FILENAME));
Path logoPath = resolveOptionalFile(scriptDir.resolve(LOGO_FILENAME));
if (sourcePath == null) {
logger.warn("Skipping marketplace script {}, missing {}", scriptDir, SOURCE_FILENAME);
LOG.warn("Skipping marketplace script {}, missing {}", scriptDir, SOURCE_FILENAME);
return Optional.empty();
}
List<SeedAttachment> attachments = loadAttachments(scriptDir.resolve(ATTACHMENTS_DIR)).orElse(null);
@@ -199,7 +199,7 @@ public class MarketplaceScriptSeedLoader {
if (Files.isRegularFile(attachment)) {
String name = attachment.getFileName().toString();
if (!seenNames.add(name)) {
logger.warn("Duplicate marketplace attachment name {}", name);
LOG.warn("Duplicate marketplace attachment name {}", name);
return Optional.empty();
}
String mediaType = detectAttachmentMediaType(attachment);
@@ -214,7 +214,7 @@ public class MarketplaceScriptSeedLoader {
}
}
} catch (IOException ex) {
logger.warn("Failed to read marketplace attachments in {}", attachmentsDir, ex);
LOG.warn("Failed to read marketplace attachments in {}", attachmentsDir, ex);
}
return Optional.of(List.copyOf(attachments));
}
@@ -242,7 +242,7 @@ public class MarketplaceScriptSeedLoader {
return mediaType;
}
} catch (IOException ex) {
logger.warn("Failed to detect media type for {}", attachment, ex);
LOG.warn("Failed to detect media type for {}", attachment, ex);
}
String filename = attachment.getFileName().toString().toLowerCase(Locale.ROOT);
int dot = filename.lastIndexOf('.');
@@ -299,7 +299,7 @@ public class MarketplaceScriptSeedLoader {
try {
return Optional.of(Files.readAllBytes(filePath));
} catch (IOException ex) {
logger.warn("Failed to read marketplace script asset {}", filePath, ex);
LOG.warn("Failed to read marketplace script asset {}", filePath, ex);
return Optional.empty();
}
}
@@ -313,7 +313,7 @@ public class MarketplaceScriptSeedLoader {
String content = Files.readString(path);
return JsonSupport.read(content);
} catch (IOException ex) {
logger.warn("Failed to read marketplace metadata {}", path, ex);
LOG.warn("Failed to read marketplace metadata {}", path, ex);
return null;
}
}
@@ -347,7 +347,7 @@ public class MarketplaceScriptSeedLoader {
String mediaType = Files.probeContentType(path);
return mediaType == null ? fallback : mediaType;
} catch (IOException ex) {
logger.warn("Failed to detect media type for {}", path, ex);
LOG.warn("Failed to detect media type for {}", path, ex);
return fallback;
}
}
@@ -19,7 +19,7 @@ import org.springframework.stereotype.Service;
@Service
public class SettingsService {
private static final Logger logger = LoggerFactory.getLogger(SettingsService.class);
private static final Logger LOG = LoggerFactory.getLogger(SettingsService.class);
private final SettingsRepository repo;
private final VisualAssetRepository visualAssetRepository;
@@ -68,9 +68,9 @@ public class SettingsService {
public void logSettings(String msg, Settings settings) {
try {
logger.info("{}:\n{}", msg, objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(settings));
LOG.info("{}:\n{}", msg, objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(settings));
} catch (JsonProcessingException e) {
logger.error("Failed to serialize settings", e);
LOG.error("Failed to serialize settings", e);
}
}
@@ -136,7 +136,7 @@ public class SettingsService {
}
if (!visualsToUpdate.isEmpty() || !audioToUpdate.isEmpty()) {
logger.info(
LOG.info(
"Normalized {} visual assets and {} audio assets to new settings ranges",
visualsToUpdate.size(),
audioToUpdate.size()
@@ -16,7 +16,7 @@ import org.springframework.transaction.annotation.Transactional;
@Service
public class SystemAdministratorService {
private static final Logger logger = LoggerFactory.getLogger(SystemAdministratorService.class);
private static final Logger LOG = LoggerFactory.getLogger(SystemAdministratorService.class);
private final SystemAdministratorRepository repo;
private final Environment environment;
@@ -41,7 +41,7 @@ public class SystemAdministratorService {
environment.getProperty("org.springframework.boot.test.context.SpringBootTestContextBootstrapper")
)
) {
logger.info("Skipping system administrator bootstrap in test context");
LOG.info("Skipping system administrator bootstrap in test context");
return;
}
@@ -49,7 +49,7 @@ public class SystemAdministratorService {
if (initialSysadmin != null) {
long deleted = repo.deleteByTwitchUsername(initialSysadmin);
if (deleted > 0) {
logger.info("Removed persisted initial system administrator '{}' to use environment value", initialSysadmin);
LOG.info("Removed persisted initial system administrator '{}' to use environment value", initialSysadmin);
}
}
@@ -63,7 +63,7 @@ public class SystemAdministratorService {
);
}
logger.info("Using initial system administrator '{}' from environment", initialSysadmin);
LOG.info("Using initial system administrator '{}' from environment", initialSysadmin);
}
public void addSysadmin(String twitchUsername) {
@@ -16,7 +16,7 @@ import org.springframework.stereotype.Service;
@Service
public class FfmpegService {
private static final Logger logger = LoggerFactory.getLogger(FfmpegService.class);
private static final Logger LOG = LoggerFactory.getLogger(FfmpegService.class);
public Optional<VideoDimensions> extractVideoDimensions(byte[] bytes) {
return Optional.ofNullable(withTempFile(bytes, ".bin", (input) -> {
@@ -34,7 +34,7 @@ public class FfmpegService {
);
ProcessResult result = run(command);
if (result.exitCode() != 0) {
logger.warn("ffprobe failed: {}", result.output());
LOG.warn("ffprobe failed: {}", result.output());
return null;
}
String output = result.output().trim();
@@ -47,7 +47,7 @@ public class FfmpegService {
int height = Integer.parseInt(parts[1].trim());
return new VideoDimensions(width, height);
} catch (NumberFormatException e) {
logger.warn("Unable to parse ffprobe output: {}", output, e);
LOG.warn("Unable to parse ffprobe output: {}", output, e);
return null;
}
}));
@@ -75,7 +75,7 @@ public class FfmpegService {
);
ProcessResult result = run(command);
if (result.exitCode() != 0) {
logger.warn("ffmpeg preview failed: {}", result.output());
LOG.warn("ffmpeg preview failed: {}", result.output());
return null;
}
return Files.readAllBytes(output);
@@ -111,7 +111,7 @@ public class FfmpegService {
);
ProcessResult result = run(command);
if (result.exitCode() != 0) {
logger.warn("ffmpeg transcode failed: {}", result.output());
LOG.warn("ffmpeg transcode failed: {}", result.output());
return null;
}
return Files.readAllBytes(output);
@@ -139,7 +139,7 @@ public class FfmpegService {
);
ProcessResult result = run(command);
if (result.exitCode() != 0) {
logger.warn("ffmpeg APNG transcode failed: {}", result.output());
LOG.warn("ffmpeg APNG transcode failed: {}", result.output());
return null;
}
return Files.readAllBytes(output);
@@ -156,14 +156,14 @@ public class FfmpegService {
Files.write(input, bytes);
return handler.handle(input);
} catch (IOException e) {
logger.warn("Unable to create temporary media file", e);
LOG.warn("Unable to create temporary media file", e);
return null;
} finally {
if (input != null) {
try {
Files.deleteIfExists(input);
} catch (IOException e) {
logger.warn("Unable to delete temporary file {}", input, e);
LOG.warn("Unable to delete temporary file {}", input, e);
}
}
}
@@ -13,7 +13,7 @@ import org.springframework.web.multipart.MultipartFile;
@Service
public class MediaDetectionService {
private static final Logger logger = LoggerFactory.getLogger(MediaDetectionService.class);
private static final Logger LOG = LoggerFactory.getLogger(MediaDetectionService.class);
public Optional<String> detectAllowedMediaType(MultipartFile file, byte[] bytes) {
Optional<String> detected = detectMediaType(bytes)
@@ -47,7 +47,7 @@ public class MediaDetectionService {
return Optional.of(guessed);
}
} catch (IOException e) {
logger.warn("Unable to detect content type from stream", e);
LOG.warn("Unable to detect content type from stream", e);
}
return Optional.empty();
@@ -11,7 +11,7 @@ import org.springframework.stereotype.Service;
@Service
public class MediaOptimizationService {
private static final Logger logger = LoggerFactory.getLogger(MediaOptimizationService.class);
private static final Logger LOG = LoggerFactory.getLogger(MediaOptimizationService.class);
private static final FfmpegService.VideoDimensions DEFAULT_VIDEO_DIMENSIONS = new FfmpegService.VideoDimensions(
640,
360
@@ -87,7 +87,7 @@ public class MediaOptimizationService {
.transcodeApngToGif(bytes)
.map(this::transcodeGifToVideo)
.orElseGet(() -> {
logger.warn("Unable to transcode APNG to GIF via ffmpeg");
LOG.warn("Unable to transcode APNG to GIF via ffmpeg");
return null;
});
}
@@ -103,7 +103,7 @@ public class MediaOptimizationService {
return new OptimizedAsset(videoBytes, "video/webm", dimensions.width(), dimensions.height(), preview);
})
.orElseGet(() -> {
logger.warn("Unable to transcode GIF to video via ffmpeg");
LOG.warn("Unable to transcode GIF to video via ffmpeg");
return null;
});
}
@@ -7,7 +7,7 @@ import org.springframework.stereotype.Service;
@Service
public class MediaPreviewService {
private static final Logger logger = LoggerFactory.getLogger(MediaPreviewService.class);
private static final Logger LOG = LoggerFactory.getLogger(MediaPreviewService.class);
private final FfmpegService ffmpegService;
@@ -19,7 +19,7 @@ public class MediaPreviewService {
return ffmpegService
.extractVideoPreview(bytes)
.orElseGet(() -> {
logger.warn("Unable to capture video preview frame for {}", mediaType);
LOG.warn("Unable to capture video preview frame for {}", mediaType);
return null;
});
}