Added LOG_JSON_SPACES to control json beautify (#2483)

* Added: environment var LOG_JSON_SPACES with default value 2. Used to no beautify JSON on handler.ts
Fix: logger.verbose was not working because default log level was info

* Update handler.ts

---------

Co-authored-by: patrick <patrick.alves@br.experian.com>
Co-authored-by: Henry Heng <henryheng@flowiseai.com>
This commit is contained in:
patrickreinan 2024-05-29 14:25:32 -03:00 committed by GitHub
parent 5d649b27cf
commit 2878af69e4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 12 additions and 6 deletions

View File

@ -131,6 +131,7 @@ Flowise support different environment variables to configure your instance. You
| DEBUG | Print logs from components | Boolean | |
| LOG_PATH | Location where log files are stored | String | `your-path/Flowise/logs` |
| LOG_LEVEL | Different levels of logs | Enum String: `error`, `info`, `verbose`, `debug` | `info` |
| LOG_JSON_SPACES | Spaces to beautify JSON logs | | 2
| APIKEY_PATH | Location where api keys are saved | String | `your-path/Flowise/packages/server` |
| TOOL_FUNCTION_BUILTIN_DEP | NodeJS built-in modules to be used for Tool Function | String | |
| TOOL_FUNCTION_EXTERNAL_DEP | External modules to be used for Tool Function | String | |

View File

@ -14,16 +14,24 @@ import { ChainValues } from '@langchain/core/utils/types'
import { AgentAction } from '@langchain/core/agents'
import { LunaryHandler } from '@langchain/community/callbacks/handlers/lunary'
import { getCredentialData, getCredentialParam } from './utils'
import { getCredentialData, getCredentialParam, getEnvironmentVariable } from './utils'
import { ICommonObject, INodeData } from './Interface'
interface AgentRun extends Run {
actions: AgentAction[]
}
function tryGetJsonSpaces() {
try {
return parseInt(getEnvironmentVariable('LOG_JSON_SPACES') ?? '2')
} catch (err) {
return 2
}
}
function tryJsonStringify(obj: unknown, fallback: string) {
try {
return JSON.stringify(obj, null, 2)
return JSON.stringify(obj, null, tryGetJsonSpaces())
} catch (err) {
return fallback
}
@ -49,10 +57,9 @@ export class ConsoleCallbackHandler extends BaseTracer {
constructor(logger: Logger) {
super()
this.logger = logger
logger.level = getEnvironmentVariable('LOG_LEVEL') ?? 'info'
}
// utility methods
getParents(run: Run) {
const parents: Run[] = []
let currentRun = run
@ -79,8 +86,6 @@ export class ConsoleCallbackHandler extends BaseTracer {
return string
}
// logging methods
onChainStart(run: Run) {
const crumbs = this.getBreadcrumbs(run)
this.logger.verbose(`[chain/start] [${crumbs}] Entering Chain run with input: ${tryJsonStringify(run.inputs, '[inputs]')}`)