草庐IT

asynchronous-logging-with-log

全部标签

java - 如何删除旧的滚动 log4j2 日志,最多保留 10 个文件?

我想要的是:最多10个日志文件,总数每个日志文件,大小不超过50MB。因此日志文件夹永远不会超过(50MB*10)=500MB。但我的log4j2配置似乎没有正确完成。发生的事情是:日志在50MB后滚动但是每天最多保留10个日志因此日志文件夹中保存的日志文件数量没有限制(因为例如,在2天内,收集了20条50MB的日志)配置如下:%d%p%c{1.}[%t]%m%n我做错了什么? 最佳答案 从2.5开始,Log4j支持customDeleteaction在每次翻转时执行。您可以通过以下方式控制删除哪些文件:姓名(匹配glob或rege

java - 未从 jar 中获取 log4j.properties

我的服务器的类路径中有一个jar,它包含位于jar根目录的log4j.properties文件,用于记录代码。当jar中的代码运行时,代码的日志记录不会发生。当我使用java-Dlog4j.debug选项分析问题时,我知道log4j正在加载axis-ant.jar的log4j.properties文件(这也是在我的类路径上)并使用它代替我的jar的属性文件。当我随后从类路径中删除axis-ant.jar时,我的jarslog4j.properties文件被立即选中并记录了我的代码。有人能解释一下为什么我的log4j.properties文件没有加载而axis-ant.jar存在吗?令人

java - Spring 集成 : Content based router with default output channel?

我想使用SpringIntegration来实现一个基于内容的路由器,如果表达式值与任何映射都不匹配,该路由器将使用默认输出channel。这是我的bean定义:但是,似乎从未使用过默认输出channel。如果表达式计算为例如“baz”,路由器似乎在寻找名为“baz”的channel,而不是路由到“channel_default”channel:org.springframework.integration.MessagingException:failedtoresolvechannelname'baz'Causedby:org.springframework.integration

java - 3.0 servlet 中的 Log4J2 配置

我尝试根据文档(和相关的SO问题)设置LOG4J,但它没有创建假定的文件,但WildFly中有这样的日志:NoLog4jcontextconfigurationprovided.Thisisveryunusual网络.xmllog4jConfigLocation/WEB-INF/classes/log4j2.xmlapp.war/WEB-INF/classes/log4j2.xmlc:/oauth.log%d%p%C{1.}[%t]%m%napp.war/WEB-INF/libcommons-logging-1.1.3.jarjson-smart-1.1.1.jarlog4j-api-

java - "Using Maven 2 dependency tree to get verbose output, which may be inconsistent with actual Maven 3 resolution"

我已将maven-dependency-plugin的使用版本从2.8更改为2.10。现在,当我运行mvndependency:tree-Dverbose时,我看到以下警告:[WARNING]UsingMaven2dependencytreetogetverboseoutput,whichmaybeinconsistentwithactualMaven3resolution我使用的Maven版本是ApacheMaven3.2.1(ea8b2b07643dbb1b84b6d16e1f08391b666bc1e9;2014-02-14T18:37:52+01:00)我能否修复或避免它?Ma

java.util.stream.Collectors : Why is the summingInt implemented with an array?

标准收集器summingInt在内部创建一个长度为1的数组:publicstaticCollectorsummingInt(ToIntFunctionmapper){returnnewCollectorImpl(()->newint[1],(a,t)->{a[0]+=mapper.applyAsInt(t);},(a,b)->{a[0]+=b[0];returna;},a->a[0],CH_NOID);}我想知道是否可以只定义:privateCollectorsummingInt(ToIntFunctionmapper){returnCollector.of(()->0,(a,t)->

java - 如何配置每 15 分钟滚动一次日志文件的 log4j 文件附加程序

我知道我可以使用DailyRollingFileAppender每月、每天、半天、每小时或每分钟滚动日志文件。但是我如何配置log4j每15分钟滚动一次日志文件。如果这无法通过配置实现,请建议/指导我如何扩展log4j的文件附加程序以实现此目的。感谢和问候。 最佳答案 DailyRollingFileAppender的Javadoc在Log4J中表示基于时间的滚动仅发生在基于单位的滚动(天、周、月等)上。这意味着您可以获得的最接近该模式的是'.'yyyy-MM-dd-HH-mm,它会每分钟滚动一次。我的建议是执行以下操作之一:由于您

java - eclipse + Maven + Tomcat : testing web apps when the WAR is built with custom options

我正在使用带有“m2eclipse”插件的Eclipse(Helios)。我正在开发一个基于Maven的Web应用程序项目,我在Eclipse中设置的本地Tomcat服务器上对其进行了测试。一般来说,这或多或少很管用。“m2eclipse”有时可能不稳定……但在大多数情况下,它使我的POM和我的Eclipse项目设置保持同步,并且同样使已部署的代码在Tomcat中保持最新。但是,最近我又添了一个皱纹。我有一个JavaScript包含文件,在从测试环境到实际生产环境时需要有所不同。差异太大,无法通过Maven过滤和token替换来干净地处理。我需要的是在我的项目中保留两个单独的文件,并且

java - Spring 安全 : programmatically log in

我们正在使用jQueryMobile开发移动应用程序,并希望在正确设置了SpringSecurity的Spring3.1.x后端上以编程方式对用户进行身份验证。将包含用户名和密码的POST请求发送到后端(使用jQuery的$.post),然后服务器验证凭据是否正确并登录用户。服务器似乎在SecurityContext中正确设置了身份验证,但是当我们向服务器发出第二个请求($.get到需要登录的页面)时,似乎没有记住安全细节和匿名token似乎在上下文中。这是Controller中处理登录的方法(为简洁起见删除了密码检查):@RequestMapping(value="/login",m

java 泛型 : getting class of a class with generic parameters

我很好奇这个怎么实现Class>food=Map.class;这显然行不通。我想要这样的东西Class>food=Map.class;但这似乎不是有效的java语法。如何让这个工作?编辑:我想要这个的原因是因为我有这样的方法protectedConfigValuegetSectionConfig(Stringname,ClassconfigType){returnconfig.getConfig(name);}我想这样调用它ConfigValue>config=getSectionConfig("blah",Map.class>);Mapval=config.value();