日志

    可以在连接选项中启用不同类型的日志记录:

    1. {
    2. host: "localhost",
    3. ...
    4. logging: ["query", "error"]
    5. }

    如果要启用失败查询的日志记录,则只添加error

    1. {
    2. host: "localhost",
    3. ...
    4. logging: ["error"]
    5. }

    还可以使用其他选项:

    • query - 记录所有查询。
    • error - 记录所有失败的查询和错误。
    • schema - 记录架构构建过程。
    • warn - 记录内部 orm 警告。
    • log - 记录内部 orm 日志消息。

    如果遇到性能问题,可以通过在连接选项中设置maxQueryExecutionTime来记录执行时间过长的查询:

    1. {
    2. host: "localhost",
    3. maxQueryExecutionTime: 1000
    4. }

    此代码将记录所有运行超过1秒的查询。

    TypeORM 附带 4 种不同类型的记录器:

    • advanced-console - 默认记录器,它将使用颜色和 sql 语法高亮显示所有记录到控制台中的消息(使用chalk)。
    • simple-console - 简单的控制台记录器,与高级记录器完全相同,但它不使用任何颜色突出显示。 如果你又问题/或不喜欢彩色日志,可以使用此记录器。
    • file - 这个记录器将所有日志写入项目根文件夹中的ormlogs.log(靠近package.jsonormconfig.json)。
    • debug - 此记录器使用打开日志记录设置你的 env 变量DEBUG = typeorm:*(注意记录选项对此记录器没有影响)。
    1. {
    2. host: "localhost",
    3. ...
    4. logging: true,
    5. logger: "file"
    6. }

    你可以通过实现Logger接口来创建自己的记录器类:

    并在连接选项中指定它:

    1. import { createConnection } from "typeorm";
    2. import { MyCustomLogger } from "./logger/MyCustomLogger";
    3. name: "mysql",
    4. type: "mysql",
    5. host: "localhost",
    6. port: 3306,
    7. username: "test",
    8. password: "test",
    9. database: "test",
    10. logger: new MyCustomLogger()
    11. });

    如果在ormconfig文件中定义了 然后你可以使用它并以下面的方式覆盖它:

    1. import { createConnection, getConnectionOptions } from "typeorm";
    2. import { MyCustomLogger } from "./logger/MyCustomLogger";
    3. // getConnectionOptions将从ormconfig文件中读取选项并将其返回到connectionOptions对象中,
    4. // 然后你只需向其附加其他属性
    5. getConnectionOptions().then(connectionOptions => {
    6. return createConnection(
    7. Object.assign(connectionOptions, {
    8. logger: new MyCustomLogger()
    9. })