Log4j2介绍和特性实例(七)--代码中指定日志文件的名字
来源:互联网 发布:淘宝童装小模特 编辑:程序博客网 时间:2024/05/17 03:04
有的时候,可能会希望通过程序代码,动态指定日志文件的名字。
在下面的例子中,我使用JS脚本文件的名字来命名日志文件
/** * 日志名字根据JS文件名,动态指定 * * @param JSName 是JS脚本的名字 * @param configPath log4j2.xml的路径 * */public void setLogName(String JSName, String configPath){String userPath = System.getProperty("user.dir");//System.out.println(userPath);System.setProperty("logFileName", userPath + "\\" + JSName + ".log");//logFileName在log4j2.xml中使用System.out.println(System.getProperty("logFileName").toString());LoggerContext ctx = (LoggerContext)LogManager.getContext(false);File filePath = new File(configPath);URI configURI = filePath.toURI();System.out.println("configURI = " + configURI.toString());//configURI = file:/E:/workspace4J2EE/KMSTool/log4j2.xmlctx.setConfigLocation(configURI);//ctx.reconfigure();//如果log4j2.xml在默认路径(src目录)下的情况,就不用获取xml文件的路径了}上面的代码是针对配置文件log4j2.xml不在配置文件默认路径src目录下情况;如果配置文件在src目录下的话,只需要简单的设置一下ctx.reconfigure()就可以完成日志文件名的动态指定。
在log4j2.xml配置文件中,文件名fileName= "${sys:logFileName}"
<?xml version="1.0" encoding="UTF-8"?> <configuration status="error" monitorInterval="30"> <Properties><Property name="log.path">.</Property></Properties><appenders><RollingFile name="debugLog" fileName= "${sys:logFileName}" filePattern="${sys:logFileName}-%i.log"> <ThresholdFilter level="DEBUG" onMatch="ACCEPT" onMismatch="DENY"/><PatternLayout pattern="[%-5level][%d{yyyy-MM-dd HH:mm:ss}][%F:%L] - %m%n" /><SizeBasedTriggeringPolicy size="100MB" /><!-- DefaultRolloverStrategy 中的参数max,可以限制 SizeBasedTriggeringPolicy中size超出后,只保留max个存档--><DefaultRolloverStrategy max="20"/></RollingFile></appenders> <loggers><root level="trace"><appender-ref ref="debugLog" /></root> </loggers></configuration>下一篇将介绍log4j2暂时不支持的内容。
1 0
- Log4j2介绍和特性实例(七)--代码中指定日志文件的名字
- Log4j2介绍和特性实例(三)--日志的异步输出
- Log4j2介绍和特性实例(三)--日志的异步输出
- Log4j2介绍和特性实例(三)--日志的异步输出
- Log4j2介绍和特性实例(五)--用户自定义日志等级
- Log4j2介绍和特性实例(一)
- Log4j2介绍和特性实例(一)
- 七牛删除存储空间中指定条件的文件
- Log4j2 定期/定大小生成日志文件
- Log4j2介绍和特性实例(四)--过滤器Filter
- Log4j2介绍和特性实例(六)--配置文件不在默认路径下的加载
- matlab代码-遍历文件夹中指定类型的文件
- 获取github中指定tag的代码
- 删除文件中指定的部分内容
- VC中指定include文件的目录
- 查询文件中指定字符的记录
- java读取jar中指定的文件
- C++替换文件中指定的内容
- My blog
- 1046. 划拳(15)
- React native之IntentAndroid学习
- 学习老外用webstorm开发nodejs的技巧--代码提示DefinitelyTyped
- 基于java社会化海量数据采集爬虫框架搭建
- Log4j2介绍和特性实例(七)--代码中指定日志文件的名字
- 【工具】使用VS内置的单元测试
- Lua封装格式化html
- PAT 1081. Rational Sum (20)
- Lua封装格式化float
- 检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败
- 哈希算法
- Lua重新加载Lua文件
- 【codevs2980】买帽子