日志
可以在连接选项中启用不同类型的日志记录:
{
host: "localhost",
...
logging: ["query", "error"]
}
如果要启用失败查询的日志记录,则只添加error
:
{
host: "localhost",
...
logging: ["error"]
}
还可以使用其他选项:
query
- 记录所有查询。error
- 记录所有失败的查询和错误。schema
- 记录架构构建过程。warn
- 记录内部 orm 警告。log
- 记录内部 orm 日志消息。
如果遇到性能问题,可以通过在连接选项中设置maxQueryExecutionTime
来记录执行时间过长的查询:
{
host: "localhost",
maxQueryExecutionTime: 1000
}
此代码将记录所有运行超过1秒
的查询。
TypeORM 附带 4 种不同类型的记录器:
advanced-console
- 默认记录器,它将使用颜色和 sql 语法高亮显示所有记录到控制台中的消息(使用chalk)。simple-console
- 简单的控制台记录器,与高级记录器完全相同,但它不使用任何颜色突出显示。 如果你又问题/或不喜欢彩色日志,可以使用此记录器。file
- 这个记录器将所有日志写入项目根文件夹中的ormlogs.log
(靠近package.json
和ormconfig.json
)。debug
- 此记录器使用打开日志记录设置你的 env 变量DEBUG = typeorm:*
(注意记录选项对此记录器没有影响)。
{
host: "localhost",
...
logging: true,
logger: "file"
}
你可以通过实现Logger
接口来创建自己的记录器类:
并在连接选项中指定它:
import { createConnection } from "typeorm";
import { MyCustomLogger } from "./logger/MyCustomLogger";
name: "mysql",
type: "mysql",
host: "localhost",
port: 3306,
username: "test",
password: "test",
database: "test",
logger: new MyCustomLogger()
});
如果在ormconfig
文件中定义了
然后你可以使用它并以下面的方式覆盖它:
import { createConnection, getConnectionOptions } from "typeorm";
import { MyCustomLogger } from "./logger/MyCustomLogger";
// getConnectionOptions将从ormconfig文件中读取选项并将其返回到connectionOptions对象中,
// 然后你只需向其附加其他属性
getConnectionOptions().then(connectionOptions => {
return createConnection(
Object.assign(connectionOptions, {
logger: new MyCustomLogger()
})