mirror of
				https://github.com/immich-app/immich.git
				synced 2025-11-03 19:29:32 -05:00 
			
		
		
		
	feat(web): only log http errors in web container (#4031)
* feat: reduce web container log verbosity on error * fix: web test * feat: better error logging --------- Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
This commit is contained in:
		
							parent
							
								
									ca96da22d0
								
							
						
					
					
						commit
						efcc66d63b
					
				@ -3,6 +3,8 @@ import type { Handle, HandleServerError } from '@sveltejs/kit';
 | 
			
		||||
import type { AxiosError, AxiosResponse } from 'axios';
 | 
			
		||||
import { ImmichApi } from './api/api';
 | 
			
		||||
 | 
			
		||||
const LOG_PREFIX = '[hooks.server.ts]';
 | 
			
		||||
 | 
			
		||||
export const handle = (async ({ event, resolve }) => {
 | 
			
		||||
  const basePath = env.PUBLIC_IMMICH_SERVER_URL || 'http://immich-server:3001';
 | 
			
		||||
  const accessToken = event.cookies.get('immich_access_token');
 | 
			
		||||
@ -16,11 +18,14 @@ export const handle = (async ({ event, resolve }) => {
 | 
			
		||||
      const { data: user } = await api.userApi.getMyUserInfo();
 | 
			
		||||
      event.locals.user = user;
 | 
			
		||||
    } catch (err) {
 | 
			
		||||
      const apiError = err as AxiosError;
 | 
			
		||||
      console.log(`${LOG_PREFIX} Unable to get my user`, parseError(err));
 | 
			
		||||
 | 
			
		||||
      const apiError = err as AxiosError;
 | 
			
		||||
      // Ignore 401 unauthorized errors and log all others.
 | 
			
		||||
      if (apiError.response?.status !== 401) {
 | 
			
		||||
        console.error('[ERROR] hooks.server.ts [handle]:', err);
 | 
			
		||||
      if (apiError.response?.status && apiError.response?.status !== 401) {
 | 
			
		||||
        console.error(`${LOG_PREFIX}:handle`, err);
 | 
			
		||||
      } else if (!apiError.response?.status) {
 | 
			
		||||
        console.error(`${LOG_PREFIX}:handle`, apiError?.message);
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
@ -36,8 +41,9 @@ export const handle = (async ({ event, resolve }) => {
 | 
			
		||||
 | 
			
		||||
const DEFAULT_MESSAGE = 'Hmm, not sure about that. Check the logs or open a ticket?';
 | 
			
		||||
 | 
			
		||||
export const handleError: HandleServerError = async ({ error }) => {
 | 
			
		||||
const parseError = (error: unknown) => {
 | 
			
		||||
  const httpError = error as AxiosError;
 | 
			
		||||
  const request = httpError?.request as Request & { path: string };
 | 
			
		||||
  const response = httpError?.response as AxiosResponse<{
 | 
			
		||||
    message: string;
 | 
			
		||||
    statusCode: number;
 | 
			
		||||
@ -49,9 +55,23 @@ export const handleError: HandleServerError = async ({ error }) => {
 | 
			
		||||
    code += ` - ${response.data?.error || response.statusText}`;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if (request && response) {
 | 
			
		||||
    console.log({
 | 
			
		||||
      status: response.status,
 | 
			
		||||
      url: `${request.method} ${request.path}`,
 | 
			
		||||
      response: response.data || 'No data',
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  return {
 | 
			
		||||
    message: response?.data?.message || httpError?.message || DEFAULT_MESSAGE,
 | 
			
		||||
    code,
 | 
			
		||||
    stack: httpError?.stack,
 | 
			
		||||
  };
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export const handleError: HandleServerError = ({ error }) => {
 | 
			
		||||
  const result = parseError(error);
 | 
			
		||||
  console.error(`${LOG_PREFIX}:handleError ${result.message}`);
 | 
			
		||||
  return result;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user