Skip to content

LoggerDefinition ​

The LoggerDefinition resource allows you to define and manage logging configurations for AWS Greengrass, enabling you to control the log levels of your Greengrass components. For more information, visit the AWS Greengrass LoggerDefinitions documentation.

Minimal Example ​

Create a basic LoggerDefinition with a default log level and a name.

ts
import AWS from "alchemy/aws/control";

const loggerDefinition = await AWS.Greengrass.LoggerDefinition("basicLoggerDefinition", {
  name: "BasicLogger",
  initialVersion: {
    loggers: [
      {
        name: "MyComponentLogger",
        level: "DEBUG",
        type: "AWS",
        component: "MyGreengrassComponent"
      }
    ]
  },
  tags: {
    Environment: "Development"
  }
});

Advanced Configuration ​

Configure a LoggerDefinition with multiple loggers, each with distinct log levels.

ts
const advancedLoggerDefinition = await AWS.Greengrass.LoggerDefinition("advancedLoggerDefinition", {
  name: "AdvancedLogger",
  initialVersion: {
    loggers: [
      {
        name: "ComponentALogger",
        level: "INFO",
        type: "AWS",
        component: "ComponentA"
      },
      {
        name: "ComponentBLogger",
        level: "ERROR",
        type: "AWS",
        component: "ComponentB"
      }
    ]
  },
  tags: {
    Environment: "Production",
    Application: "GreengrassApp"
  }
});

Logger with Custom Tags ​

Create a LoggerDefinition that includes additional tags for resource management.

ts
const taggedLoggerDefinition = await AWS.Greengrass.LoggerDefinition("taggedLoggerDefinition", {
  name: "TaggedLogger",
  initialVersion: {
    loggers: [
      {
        name: "SpecialLogger",
        level: "WARN",
        type: "AWS",
        component: "SpecialComponent"
      }
    ]
  },
  tags: {
    Project: "GreengrassProject",
    Owner: "DevTeam"
  }
});

Logger Definition with Adoption ​

Create a LoggerDefinition that adopts an existing resource instead of failing if it already exists.

ts
const adoptiveLoggerDefinition = await AWS.Greengrass.LoggerDefinition("adoptiveLoggerDefinition", {
  name: "AdoptedLogger",
  initialVersion: {
    loggers: [
      {
        name: "AdoptedLogger",
        level: "INFO",
        type: "AWS",
        component: "AdoptedComponent"
      }
    ]
  },
  adopt: true
});