通过java日志框架将AWS SDK日志记录到自定义日志文件

通过java日志框架将AWS SDK日志记录到自定义日志文件,java,logging,amazon-web-services,aws-sdk,Java,Logging,Amazon Web Services,Aws Sdk,我试图通过使用java.util.logging框架而不是log4j来启用AmazonWebServicesSDK日志记录。我已经设法让它工作,日志进入 属性文件中由java.util.logging.FileHandler.pattern指定的文件 我的log.properties文件 org.apache.commons.logging.Log=org.apache.commons.logging.impl.Jdk14Logger handlers=java.util.logging.Fil

我试图通过使用java.util.logging框架而不是log4j来启用AmazonWebServicesSDK日志记录。我已经设法让它工作,日志进入 属性文件中由java.util.logging.FileHandler.pattern指定的文件

我的log.properties文件

org.apache.commons.logging.Log=org.apache.commons.logging.impl.Jdk14Logger
handlers=java.util.logging.FileHandler
com.amazonaws.request.level=FINE
java.util.logging.FileHandler.formatter=java.util.logging.SimpleFormatter
java.util.logging.FileHandler.pattern=./javalog.log
我要寻找的是一种在运行时设置文件名的方法

我尝试了以下几种选择

备选案文1: 在属性文件中:设置以下java.util.logging.FileHandler.pattern=${mylogfile}

然后在java程序的main()函数中,调用 System.setProperty(“mylogfile”,logName)

备选案文2: 从属性文件中删除行“java.util.logging.FileHandler.pattern”

相反,打电话 setProperty(“java.util.logging.FileHandler.pattern”,logName)

这两个选项都不起作用

Ps:对于log4j,选项1可以正常工作

你知道如何为SDK日志动态定制日志文件吗

谢谢 Vijay支持任意配置代码。根据文件:

属性“config”。此属性用于允许运行任意配置代码。该属性定义了一个以空格或逗号分隔的类名列表。将为每个命名类创建一个新实例。每个类的默认构造函数可以执行任意代码来更新日志记录配置,例如设置日志记录程序级别、添加处理程序、添加过滤器等

例如,您可以编译以下内容:

    package somepackage;
    public class Config {
        public Config() throws Exception {
            String pattern = System.getProperty("mylogfile", "javalog.log");
            FileHandler f = new FileHandler(pattern);
            Logger.getLogger("").addHandler(f);
        }
    }
然后使用以下配置文件安装它:

config=somepackage.Config
com.amazonaws.request.level=FINE

您还可以创建一个控制如何以及何时在运行时生成日志文件名的对话框。

工作起来很有魅力。多谢