mirror of
https://github.com/immich-app/immich.git
synced 2025-05-24 02:13:51 -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