如何启用 DynamoDB 本地日志记录?

How do I enable DynamoDB Local Logging?

DynamoDB Local 经常不显示描述性错误消息,为了查看内部错误,您需要启用日志记录。

在标准输出上启用 DynamoDB Local 日志记录的步骤是什么?

  1. 切换到包含 DynamoDBLocal.jar
  2. 的目录
  3. 创建一个名为 log4j.properties 的新文件,内容为:

    log4j.rootLogger=调试,标准输出

    log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=LOG%d %p [%c] - %m%n

  4. 从 jar 中删除现有的 log4j.properties 个文件(可能有两个)

    zip -d DynamoDBLocal.jar log4j.properties

    zip -d DynamoDBLocal.jar log4j.properties

  5. 将新的属性文件添加到 jar

    zip -u DynamoDBLocal.jar log4j.properties

来源:https://gist.github.com/mdaley/aaf9b62d90f6817eb72a

  1. 转到包含 DynamoDBLocal.jar
  2. 的目录
  3. 使用以下内容创建名为 log4j2.xml 的文件:
  <?xml version="1.0" encoding="UTF-8"?>
        <Configuration status="WARN">
          <Appenders>
              <Console name="Console" target="SYSTEM_OUT">
                      <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
              </Console>
          </Appenders>
              <Loggers>
              <Logger name="com.amazonaws.services.dynamodbv2.local" level="DEBUG">
                  <AppenderRef ref="Console"/>
              </Logger>
            <Logger name="com.amazonaws.services.dynamodbv2.local.shared.access.sqlite.SQLiteDBAccess" level="INFO">
              <AppenderRef ref="Console"/>
            </Logger>
             <Root level="WARN">
              <AppenderRef ref="Console"/>
            </Root>
          </Loggers>
        </Configuration>
  1. 从 jar
  2. 中删除现有的 log4j2.xml

zip -d DynamoDBLocal.jar log4j2.xml

  1. 将创建的log4j2.xml添加到jar

zip -u DynamoDBLocal.jar log4j2.xml

或使用 7-Zip 等简单地编辑 DynamoDBLocal.jar 中的 log4j2.xml 并用上面的 xml 覆盖它并跳过步骤 2-4 .