chore: delete debug log

This commit is contained in:
ezequielnick 2025-08-12 09:20:36 +08:00
parent d030a8722d
commit cb3eedfcb8
2 changed files with 36 additions and 97 deletions

View File

@ -2,6 +2,7 @@
### 新功能 (Feat) ### 新功能 (Feat)
- 如果当前没有以管理员模式运行TUN 开关保持关闭 - 如果当前没有以管理员模式运行TUN 开关保持关闭
- 区分 app 日志与 core 日志输出为不同文件
### 修复 (Fix) ### 修复 (Fix)
- 修复某些系统下的悬浮窗开启崩溃的问题 - 修复某些系统下的悬浮窗开启崩溃的问题

View File

@ -9,30 +9,19 @@ import { floatingWindowLogger } from '../utils/logger'
export let floatingWindow: BrowserWindow | null = null export let floatingWindow: BrowserWindow | null = null
// 悬浮窗日志记录 - 使用统一的日志工具 function logError(message: string, error?: any): void {
async function logFloatingWindow(message: string, error?: any): Promise<void> { floatingWindowLogger.log(`FloatingWindow Error: ${message}`, error).catch(() => {})
await floatingWindowLogger.log(message, error)
} }
async function createFloatingWindow(): Promise<void> { async function createFloatingWindow(): Promise<void> {
try { try {
await logFloatingWindow('Starting to create floating window...') const floatingWindowState = windowStateKeeper({ file: 'floating-window-state.json' })
const floatingWindowState = windowStateKeeper({
file: 'floating-window-state.json'
})
await logFloatingWindow('Window state keeper initialized')
const { customTheme = 'default.css', floatingWindowCompatMode = true } = await getAppConfig() const { customTheme = 'default.css', floatingWindowCompatMode = true } = await getAppConfig()
await logFloatingWindow(`App config loaded, theme: ${customTheme}, compatMode: ${floatingWindowCompatMode}`)
const safeMode = process.env.FLOATING_SAFE_MODE === 'true' const safeMode = process.env.FLOATING_SAFE_MODE === 'true'
const forceWin10Mode = process.env.FLOATING_WIN10_MODE === 'true' const useCompatMode = floatingWindowCompatMode ||
const useCompatMode = floatingWindowCompatMode || forceWin10Mode || safeMode process.env.FLOATING_COMPAT_MODE === 'true' ||
safeMode
await logFloatingWindow(`Safe mode: ${safeMode}`)
await logFloatingWindow(`Force Win10 mode: ${forceWin10Mode}`)
await logFloatingWindow(`Compat mode from config: ${floatingWindowCompatMode}`)
await logFloatingWindow(`Platform: ${process.platform}, System version: ${process.getSystemVersion()}`)
await logFloatingWindow(`Using compatibility mode: ${useCompatMode}`)
const windowOptions: Electron.BrowserWindowConstructorOptions = { const windowOptions: Electron.BrowserWindowConstructorOptions = {
width: 120, width: 120,
@ -40,16 +29,16 @@ async function createFloatingWindow(): Promise<void> {
x: floatingWindowState.x, x: floatingWindowState.x,
y: floatingWindowState.y, y: floatingWindowState.y,
show: false, show: false,
frame: safeMode ? true : false, frame: safeMode,
alwaysOnTop: !safeMode, alwaysOnTop: !safeMode,
resizable: safeMode, resizable: safeMode,
transparent: !safeMode && !useCompatMode, // 兼容模式下禁用透明 transparent: !safeMode && !useCompatMode,
skipTaskbar: !safeMode, skipTaskbar: !safeMode,
minimizable: safeMode, minimizable: safeMode,
maximizable: safeMode, maximizable: safeMode,
fullscreenable: false, fullscreenable: false,
closable: safeMode, closable: safeMode,
backgroundColor: safeMode ? '#ffffff' : (useCompatMode ? '#f0f0f0' : '#00000000'), // 兼容模式使用浅灰色 backgroundColor: safeMode ? '#ffffff' : (useCompatMode ? '#f0f0f0' : '#00000000'),
webPreferences: { webPreferences: {
preload: join(__dirname, '../preload/index.js'), preload: join(__dirname, '../preload/index.js'),
spellcheck: false, spellcheck: false,
@ -59,91 +48,46 @@ async function createFloatingWindow(): Promise<void> {
} }
} }
// windows 添加兼容性处理
if (process.platform === 'win32') { if (process.platform === 'win32') {
windowOptions.hasShadow = !safeMode windowOptions.hasShadow = !safeMode
windowOptions.webPreferences!.offscreen = false windowOptions.webPreferences!.offscreen = false
} }
await logFloatingWindow(`Creating BrowserWindow with options: ${JSON.stringify(windowOptions, null, 2)}`)
try {
floatingWindow = new BrowserWindow(windowOptions) floatingWindow = new BrowserWindow(windowOptions)
await logFloatingWindow('BrowserWindow created successfully')
} catch (error) {
await logFloatingWindow('Failed to create BrowserWindow', error)
throw error
}
try {
await logFloatingWindow('Attaching window state management...')
floatingWindowState.manage(floatingWindow) floatingWindowState.manage(floatingWindow)
await logFloatingWindow('Window state management attached')
} catch (error) {
await logFloatingWindow('Failed to attach window state management', error)
throw error
}
await logFloatingWindow('Setting up event listeners...') // 事件监听器
floatingWindow.webContents.on('render-process-gone', (_, details) => {
try { logError('Render process gone', details.reason)
await logFloatingWindow('Adding render-process-gone listener...')
floatingWindow.webContents.on('render-process-gone', async (_, details) => {
await logFloatingWindow('Render process gone', details.reason)
floatingWindow = null floatingWindow = null
}) })
await logFloatingWindow('Render-process-gone listener added')
} catch (error) {
await logFloatingWindow('Failed to add render-process-gone listener', error)
throw error
}
await logFloatingWindow('Adding ready-to-show listener...') floatingWindow.on('ready-to-show', () => {
floatingWindow.on('ready-to-show', async () => {
try {
await logFloatingWindow('Window ready to show, applying theme...')
applyTheme(customTheme) applyTheme(customTheme)
await logFloatingWindow('Theme applied, showing window...')
floatingWindow?.show() floatingWindow?.show()
await logFloatingWindow('Window shown, setting always on top...')
floatingWindow?.setAlwaysOnTop(true, 'screen-saver') floatingWindow?.setAlwaysOnTop(true, 'screen-saver')
await logFloatingWindow('Floating window setup completed successfully')
} catch (error) {
await logFloatingWindow('Error in ready-to-show', error)
}
}) })
await logFloatingWindow('Ready-to-show listener added')
await logFloatingWindow('Adding moved listener...')
floatingWindow.on('moved', () => { floatingWindow.on('moved', () => {
if (floatingWindow) floatingWindowState.saveState(floatingWindow) floatingWindow && floatingWindowState.saveState(floatingWindow)
}) })
await logFloatingWindow('Moved listener added')
await logFloatingWindow('Adding IPC listener...') // IPC 监听器
ipcMain.on('updateFloatingWindow', () => { ipcMain.on('updateFloatingWindow', () => {
if (floatingWindow) { if (floatingWindow) {
floatingWindow?.webContents.send('controledMihomoConfigUpdated') floatingWindow.webContents.send('controledMihomoConfigUpdated')
floatingWindow?.webContents.send('appConfigUpdated') floatingWindow.webContents.send('appConfigUpdated')
} }
}) })
await logFloatingWindow('IPC listener added')
await logFloatingWindow('Loading page...') // 加载页面
if (is.dev && process.env['ELECTRON_RENDERER_URL']) { const url = is.dev && process.env['ELECTRON_RENDERER_URL']
const devUrl = `${process.env['ELECTRON_RENDERER_URL']}/floating.html` ? `${process.env['ELECTRON_RENDERER_URL']}/floating.html`
await logFloatingWindow(`Loading dev URL: ${devUrl}`) : join(__dirname, '../renderer/floating.html')
await floatingWindow.loadURL(devUrl)
} else { is.dev ? await floatingWindow.loadURL(url) : await floatingWindow.loadFile(url)
const filePath = join(__dirname, '../renderer/floating.html')
await logFloatingWindow(`Loading file: ${filePath}`)
await floatingWindow.loadFile(filePath)
}
await logFloatingWindow('Page loaded successfully')
} catch (error) { } catch (error) {
await logFloatingWindow('Failed to create floating window', error) logError('Failed to create floating window', error)
if (error instanceof Error) {
await logFloatingWindow(`Error stack: ${error.stack}`)
}
floatingWindow = null floatingWindow = null
throw error throw error
} }
@ -152,26 +96,20 @@ async function createFloatingWindow(): Promise<void> {
export async function showFloatingWindow(): Promise<void> { export async function showFloatingWindow(): Promise<void> {
try { try {
if (floatingWindow && !floatingWindow.isDestroyed()) { if (floatingWindow && !floatingWindow.isDestroyed()) {
await logFloatingWindow('Showing existing floating window')
floatingWindow.show() floatingWindow.show()
} else { } else {
await logFloatingWindow('Creating new floating window')
await createFloatingWindow() await createFloatingWindow()
} }
} catch (error) { } catch (error) {
await logFloatingWindow('Failed to show floating window', error) logError('Failed to show floating window', error)
// 如果已经是兼容模式还是崩溃,说明问题很严重,自动禁用悬浮窗 // 如果已经是兼容模式还是崩溃,自动禁用悬浮窗
const { floatingWindowCompatMode = true } = await getAppConfig() const { floatingWindowCompatMode = true } = await getAppConfig()
if (floatingWindowCompatMode) { if (floatingWindowCompatMode) {
await logFloatingWindow('Compatibility mode was already enabled, disabling floating window completely')
await patchAppConfig({ showFloatingWindow: false }) await patchAppConfig({ showFloatingWindow: false })
} else { } else {
await logFloatingWindow('Enabling compatibility mode and retrying')
await patchAppConfig({ floatingWindowCompatMode: true }) await patchAppConfig({ floatingWindowCompatMode: true })
} }
await logFloatingWindow('Disabled floating window in config due to error')
throw error throw error
} }
} }