有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!


共 (2) 个答案

  1. # 1 楼答案

    使用log4j2中的系统属性定义的文件名/文件路径定义记录器。xml文件

    <appenders>
    <File name="MyFile" fileName="${sys:logFilename}.log">
      <PatternLayout pattern="%d{${datestamp}} [%t] %-5level %logger{36} - %msg%n"/>
    </File>
    </appenders>
    

    在程序中,从用户输入中读取文件名,并使用配置文件中用于文件名的密钥将其保存到系统属性。更新上下文以重新加载配置文件>;文件名是在运行时动态创建的

    String filnameInput = "GetInputLikeYouWantIt";
    System.setProperty("logFilename", filnameInput);
    //update the Logger context to relead the filename with the lookup
    LoggerContext ctx =  (LoggerContext) LogManager.getContext(false);
    ctx.reconfigure();
    
  2. # 2 楼答案

    你可以编写一个在应用程序启动时调用的代码,然后从根记录器列表中删除appender

    事情是这样的。我不太确定

    Logger.getRootLogger().removeAppender("stdout")
    

    我可以看一下log4j吗。属性文件