mirror of
				https://github.com/immich-app/immich.git
				synced 2025-10-30 18:35:00 -04:00 
			
		
		
		
	refactor!: LOG_LEVEL => IMMICH_LOG_LEVEL (#9557)
refactor: LOG_LEVEL => IMMICH_LOG_LEVEL
This commit is contained in:
		
							parent
							
								
									101bc290f9
								
							
						
					
					
						commit
						4807fc40a6
					
				| @ -95,7 +95,7 @@ immich-machine-learning: | ||||
| Once this is done, you can redeploy the `immich-machine-learning` container. | ||||
| 
 | ||||
| :::info | ||||
| You can confirm the device is being recognized and used by checking its utilization (via `nvtop` for CUDA, `intel_gpu_top` for OpenVINO, etc.). You can also enable debug logging by setting `LOG_LEVEL=debug` in the `.env` file and restarting the `immich-machine-learning` container. When a Smart Search or Face Detection job begins, you should see a log for `Available ORT providers` containing the relevant provider. In the case of ARM NN, the absence of a `Could not load ANN shared libraries` log entry means it loaded successfully. | ||||
| You can confirm the device is being recognized and used by checking its utilization (via `nvtop` for CUDA, `intel_gpu_top` for OpenVINO, etc.). You can also enable debug logging by setting `IMMICH_LOG_LEVEL=debug` in the `.env` file and restarting the `immich-machine-learning` container. When a Smart Search or Face Detection job begins, you should see a log for `Available ORT providers` containing the relevant provider. In the case of ARM NN, the absence of a `Could not load ANN shared libraries` log entry means it loaded successfully. | ||||
| ::: | ||||
| 
 | ||||
| [hw-file]: https://github.com/immich-app/immich/releases/latest/download/hwaccel.ml.yml | ||||
|  | ||||
| @ -42,7 +42,7 @@ Regardless of filesystem, it is not recommended to use a network share for your | ||||
| | :------------------------------ | :------------------------------------------- | :----------------------: | :-------------------------------------- | | ||||
| | `TZ`                            | Timezone                                     |                          | microservices                           | | ||||
| | `NODE_ENV`                      | Environment (production, development)        |       `production`       | server, microservices, machine learning | | ||||
| | `LOG_LEVEL`                     | Log Level (verbose, debug, log, warn, error) |          `log`           | server, microservices, machine learning | | ||||
| | `IMMICH_LOG_LEVEL`              | Log Level (verbose, debug, log, warn, error) |          `log`           | server, microservices, machine learning | | ||||
| | `IMMICH_MEDIA_LOCATION`         | Media Location                               | `./upload`<sup>\*1</sup> | server, microservices                   | | ||||
| | `IMMICH_CONFIG_FILE`            | Path to config file                          |                          | server, microservices                   | | ||||
| | `IMMICH_WEB_ROOT`               | Path of root index.html                      |    `/usr/src/app/www`    | server                                  | | ||||
|  | ||||
| @ -41,7 +41,7 @@ class Settings(BaseSettings): | ||||
| 
 | ||||
| 
 | ||||
| class LogSettings(BaseSettings): | ||||
|     log_level: str = "info" | ||||
|     immich_log_level: str = "info" | ||||
|     no_color: bool = False | ||||
| 
 | ||||
|     class Config: | ||||
| @ -77,7 +77,7 @@ LOG_LEVELS: dict[str, int] = { | ||||
| settings = Settings() | ||||
| log_settings = LogSettings() | ||||
| 
 | ||||
| LOG_LEVEL = LOG_LEVELS.get(log_settings.log_level.lower(), logging.INFO) | ||||
| LOG_LEVEL = LOG_LEVELS.get(log_settings.immich_log_level.lower(), logging.INFO) | ||||
| 
 | ||||
| 
 | ||||
| class CustomRichHandler(RichHandler): | ||||
|  | ||||
| @ -361,7 +361,7 @@ export const immichAppConfig: ConfigModuleOptions = { | ||||
|   isGlobal: true, | ||||
|   validationSchema: Joi.object({ | ||||
|     NODE_ENV: Joi.string().optional().valid('development', 'production', 'staging').default('development'), | ||||
|     LOG_LEVEL: Joi.string() | ||||
|     IMMICH_LOG_LEVEL: Joi.string() | ||||
|       .optional() | ||||
|       .valid(...Object.values(LogLevel)), | ||||
| 
 | ||||
|  | ||||
| @ -10,7 +10,7 @@ if (process.argv[2] === immichApp) { | ||||
| } | ||||
| 
 | ||||
| async function bootstrapImmichAdmin() { | ||||
|   process.env.LOG_LEVEL = LogLevel.WARN; | ||||
|   process.env.IMMICH_LOG_LEVEL = LogLevel.WARN; | ||||
|   await CommandFactory.run(ImmichAdminModule); | ||||
| } | ||||
| 
 | ||||
|  | ||||
| @ -62,7 +62,7 @@ export class SystemConfigService { | ||||
|   @OnServerEvent(ServerAsyncEvent.CONFIG_VALIDATE) | ||||
|   onValidateConfig({ newConfig, oldConfig }: ServerAsyncEventMap[ServerAsyncEvent.CONFIG_VALIDATE]) { | ||||
|     if (!_.isEqual(instanceToPlain(newConfig.logging), oldConfig.logging) && this.getEnvLogLevel()) { | ||||
|       throw new Error('Logging cannot be changed while the environment variable LOG_LEVEL is set.'); | ||||
|       throw new Error('Logging cannot be changed while the environment variable IMMICH_LOG_LEVEL is set.'); | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
| @ -135,10 +135,10 @@ export class SystemConfigService { | ||||
|     const configLevel = logging.enabled ? logging.level : false; | ||||
|     const level = envLevel ?? configLevel; | ||||
|     this.logger.setLogLevel(level); | ||||
|     this.logger.log(`LogLevel=${level} ${envLevel ? '(set via LOG_LEVEL)' : '(set via system config)'}`); | ||||
|     this.logger.log(`LogLevel=${level} ${envLevel ? '(set via IMMICH_LOG_LEVEL)' : '(set via system config)'}`); | ||||
|   } | ||||
| 
 | ||||
|   private getEnvLogLevel() { | ||||
|     return process.env.LOG_LEVEL as LogLevel; | ||||
|     return process.env.IMMICH_LOG_LEVEL as LogLevel; | ||||
|   } | ||||
| } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user