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:
parent
5d649b27cf
commit
2878af69e4
|
|
@ -131,6 +131,7 @@ Flowise support different environment variables to configure your instance. You
|
||||||
| DEBUG | Print logs from components | Boolean | |
|
| DEBUG | Print logs from components | Boolean | |
|
||||||
| LOG_PATH | Location where log files are stored | String | `your-path/Flowise/logs` |
|
| 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_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` |
|
| 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_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 | |
|
| TOOL_FUNCTION_EXTERNAL_DEP | External modules to be used for Tool Function | String | |
|
||||||
|
|
|
||||||
|
|
@ -14,16 +14,24 @@ import { ChainValues } from '@langchain/core/utils/types'
|
||||||
import { AgentAction } from '@langchain/core/agents'
|
import { AgentAction } from '@langchain/core/agents'
|
||||||
import { LunaryHandler } from '@langchain/community/callbacks/handlers/lunary'
|
import { LunaryHandler } from '@langchain/community/callbacks/handlers/lunary'
|
||||||
|
|
||||||
import { getCredentialData, getCredentialParam } from './utils'
|
import { getCredentialData, getCredentialParam, getEnvironmentVariable } from './utils'
|
||||||
import { ICommonObject, INodeData } from './Interface'
|
import { ICommonObject, INodeData } from './Interface'
|
||||||
|
|
||||||
interface AgentRun extends Run {
|
interface AgentRun extends Run {
|
||||||
actions: AgentAction[]
|
actions: AgentAction[]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function tryGetJsonSpaces() {
|
||||||
|
try {
|
||||||
|
return parseInt(getEnvironmentVariable('LOG_JSON_SPACES') ?? '2')
|
||||||
|
} catch (err) {
|
||||||
|
return 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function tryJsonStringify(obj: unknown, fallback: string) {
|
function tryJsonStringify(obj: unknown, fallback: string) {
|
||||||
try {
|
try {
|
||||||
return JSON.stringify(obj, null, 2)
|
return JSON.stringify(obj, null, tryGetJsonSpaces())
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
return fallback
|
return fallback
|
||||||
}
|
}
|
||||||
|
|
@ -49,10 +57,9 @@ export class ConsoleCallbackHandler extends BaseTracer {
|
||||||
constructor(logger: Logger) {
|
constructor(logger: Logger) {
|
||||||
super()
|
super()
|
||||||
this.logger = logger
|
this.logger = logger
|
||||||
|
logger.level = getEnvironmentVariable('LOG_LEVEL') ?? 'info'
|
||||||
}
|
}
|
||||||
|
|
||||||
// utility methods
|
|
||||||
|
|
||||||
getParents(run: Run) {
|
getParents(run: Run) {
|
||||||
const parents: Run[] = []
|
const parents: Run[] = []
|
||||||
let currentRun = run
|
let currentRun = run
|
||||||
|
|
@ -79,8 +86,6 @@ export class ConsoleCallbackHandler extends BaseTracer {
|
||||||
return string
|
return string
|
||||||
}
|
}
|
||||||
|
|
||||||
// logging methods
|
|
||||||
|
|
||||||
onChainStart(run: Run) {
|
onChainStart(run: Run) {
|
||||||
const crumbs = this.getBreadcrumbs(run)
|
const crumbs = this.getBreadcrumbs(run)
|
||||||
this.logger.verbose(`[chain/start] [${crumbs}] Entering Chain run with input: ${tryJsonStringify(run.inputs, '[inputs]')}`)
|
this.logger.verbose(`[chain/start] [${crumbs}] Entering Chain run with input: ${tryJsonStringify(run.inputs, '[inputs]')}`)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue