mirror of
				https://github.com/immich-app/immich.git
				synced 2025-10-30 10:24:58 -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. | Once this is done, you can redeploy the `immich-machine-learning` container. | ||||||
| 
 | 
 | ||||||
| :::info | :::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 | [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                           | | | `TZ`                            | Timezone                                     |                          | microservices                           | | ||||||
| | `NODE_ENV`                      | Environment (production, development)        |       `production`       | server, microservices, machine learning | | | `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_MEDIA_LOCATION`         | Media Location                               | `./upload`<sup>\*1</sup> | server, microservices                   | | ||||||
| | `IMMICH_CONFIG_FILE`            | Path to config file                          |                          | server, microservices                   | | | `IMMICH_CONFIG_FILE`            | Path to config file                          |                          | server, microservices                   | | ||||||
| | `IMMICH_WEB_ROOT`               | Path of root index.html                      |    `/usr/src/app/www`    | server                                  | | | `IMMICH_WEB_ROOT`               | Path of root index.html                      |    `/usr/src/app/www`    | server                                  | | ||||||
|  | |||||||
| @ -41,7 +41,7 @@ class Settings(BaseSettings): | |||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| class LogSettings(BaseSettings): | class LogSettings(BaseSettings): | ||||||
|     log_level: str = "info" |     immich_log_level: str = "info" | ||||||
|     no_color: bool = False |     no_color: bool = False | ||||||
| 
 | 
 | ||||||
|     class Config: |     class Config: | ||||||
| @ -77,7 +77,7 @@ LOG_LEVELS: dict[str, int] = { | |||||||
| settings = Settings() | settings = Settings() | ||||||
| log_settings = LogSettings() | 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): | class CustomRichHandler(RichHandler): | ||||||
|  | |||||||
| @ -361,7 +361,7 @@ export const immichAppConfig: ConfigModuleOptions = { | |||||||
|   isGlobal: true, |   isGlobal: true, | ||||||
|   validationSchema: Joi.object({ |   validationSchema: Joi.object({ | ||||||
|     NODE_ENV: Joi.string().optional().valid('development', 'production', 'staging').default('development'), |     NODE_ENV: Joi.string().optional().valid('development', 'production', 'staging').default('development'), | ||||||
|     LOG_LEVEL: Joi.string() |     IMMICH_LOG_LEVEL: Joi.string() | ||||||
|       .optional() |       .optional() | ||||||
|       .valid(...Object.values(LogLevel)), |       .valid(...Object.values(LogLevel)), | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -10,7 +10,7 @@ if (process.argv[2] === immichApp) { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| async function bootstrapImmichAdmin() { | async function bootstrapImmichAdmin() { | ||||||
|   process.env.LOG_LEVEL = LogLevel.WARN; |   process.env.IMMICH_LOG_LEVEL = LogLevel.WARN; | ||||||
|   await CommandFactory.run(ImmichAdminModule); |   await CommandFactory.run(ImmichAdminModule); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -62,7 +62,7 @@ export class SystemConfigService { | |||||||
|   @OnServerEvent(ServerAsyncEvent.CONFIG_VALIDATE) |   @OnServerEvent(ServerAsyncEvent.CONFIG_VALIDATE) | ||||||
|   onValidateConfig({ newConfig, oldConfig }: ServerAsyncEventMap[ServerAsyncEvent.CONFIG_VALIDATE]) { |   onValidateConfig({ newConfig, oldConfig }: ServerAsyncEventMap[ServerAsyncEvent.CONFIG_VALIDATE]) { | ||||||
|     if (!_.isEqual(instanceToPlain(newConfig.logging), oldConfig.logging) && this.getEnvLogLevel()) { |     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 configLevel = logging.enabled ? logging.level : false; | ||||||
|     const level = envLevel ?? configLevel; |     const level = envLevel ?? configLevel; | ||||||
|     this.logger.setLogLevel(level); |     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() { |   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