refactor(logging): implement unified Logger system to replace console calls

- Add Logger utility with tagged output and environment-based control
- Configure Babel to remove console calls in production builds
- Replace all console.* calls across stores, services, and components with Logger
- Enable development-only logging with formatted output and component tags
- Optimize production builds by eliminating all logging code
This commit is contained in:
zimplexing
2025-08-15 22:57:38 +08:00
parent 836285dbd5
commit e57466c8c1
25 changed files with 404 additions and 200 deletions

View File

@@ -8,6 +8,9 @@ import { ThemedText } from "@/components/ThemedText";
import { Colors } from "@/constants/Colors";
import { useResponsiveLayout } from "@/hooks/useResponsiveLayout";
import { DeviceUtils } from "@/utils/DeviceUtils";
import Logger from '@/utils/Logger';
const logger = Logger.withTag('ResponsiveVideoCard');
interface VideoCardProps extends React.ComponentProps<typeof TouchableOpacity> {
id: string;
@@ -138,7 +141,7 @@ const ResponsiveVideoCard = forwardRef<View, VideoCardProps>(
router.replace("/");
}
} catch (error) {
console.info("Failed to delete play record:", error);
logger.info("Failed to delete play record:", error);
Alert.alert("错误", "删除观看记录失败,请重试");
}
},

View File

@@ -3,13 +3,16 @@ import { View, Text, StyleSheet, Modal, FlatList } from "react-native";
import { StyledButton } from "./StyledButton";
import useDetailStore from "@/stores/detailStore";
import usePlayerStore from "@/stores/playerStore";
import Logger from '@/utils/Logger';
const logger = Logger.withTag('SourceSelectionModal');
export const SourceSelectionModal: React.FC = () => {
const { showSourceModal, setShowSourceModal, loadVideo, currentEpisodeIndex, status } = usePlayerStore();
const { searchResults, detail, setDetail } = useDetailStore();
const onSelectSource = (index: number) => {
console.log("onSelectSource", index, searchResults[index].source, detail?.source);
logger.debug("onSelectSource", index, searchResults[index].source, detail?.source);
if (searchResults[index].source !== detail?.source) {
const newDetail = searchResults[index];
setDetail(newDetail);

View File

@@ -8,6 +8,9 @@ import { ThemedText } from "@/components/ThemedText";
import { Colors } from "@/constants/Colors";
import { useResponsiveLayout } from "@/hooks/useResponsiveLayout";
import { DeviceUtils } from "@/utils/DeviceUtils";
import Logger from '@/utils/Logger';
const logger = Logger.withTag('VideoCardMobile');
interface VideoCardMobileProps extends React.ComponentProps<typeof TouchableOpacity> {
id: string;
@@ -97,7 +100,7 @@ const VideoCardMobile = forwardRef<View, VideoCardMobileProps>(
await PlayRecordManager.remove(source, id);
onRecordDeleted?.();
} catch (error) {
console.info("Failed to delete play record:", error);
logger.info("Failed to delete play record:", error);
Alert.alert("错误", "删除观看记录失败,请重试");
}
},

View File

@@ -8,6 +8,9 @@ import { ThemedText } from "@/components/ThemedText";
import { Colors } from "@/constants/Colors";
import { useResponsiveLayout } from "@/hooks/useResponsiveLayout";
import { DeviceUtils } from "@/utils/DeviceUtils";
import Logger from '@/utils/Logger';
const logger = Logger.withTag('VideoCardTablet');
interface VideoCardTabletProps extends React.ComponentProps<typeof TouchableOpacity> {
id: string;
@@ -119,7 +122,7 @@ const VideoCardTablet = forwardRef<View, VideoCardTabletProps>(
await PlayRecordManager.remove(source, id);
onRecordDeleted?.();
} catch (error) {
console.info("Failed to delete play record:", error);
logger.info("Failed to delete play record:", error);
Alert.alert("错误", "删除观看记录失败,请重试");
}
},

View File

@@ -6,6 +6,9 @@ import { PlayRecordManager } from "@/services/storage";
import { API } from "@/services/api";
import { ThemedText } from "@/components/ThemedText";
import { Colors } from "@/constants/Colors";
import Logger from '@/utils/Logger';
const logger = Logger.withTag('VideoCardTV');
interface VideoCardProps extends React.ComponentProps<typeof TouchableOpacity> {
id: string;
@@ -131,7 +134,7 @@ const VideoCard = forwardRef<View, VideoCardProps>(
router.replace("/");
}
} catch (error) {
console.info("Failed to delete play record:", error);
logger.info("Failed to delete play record:", error);
Alert.alert("错误", "删除观看记录失败,请重试");
}
},