log4j Rename失败,一些线程的问题

问题描述

<appendername="recordMessageDailyRollingFRileAppender"class="org.apache.log4j.DailyRollingFileAppender"><paramname="File"value="log/recodeMessage"/><paramname="DatePattern"value="'_'yyyyMMddHHmm'.log'"/><paramname="Append"value="true"/><paramname="ImmediateFlush"value="false"/><paramname="BufferedIO"value="true"/><paramname="BufferSize"value="32768"/><layoutclass="org.apache.log4j.PatternLayout"><paramname="ConversionPattern"value="%d[%t]%p%x{operationName}%x{userId}-%m%n"/></layout></appender>以上是log4j循环一分钟记日志的配置一共开了2个线程第一个线程是执行某种操作,然后Logger.info到log目录下循环一分钟记日志第二个线程是newFile('log/'),轮询发现新产生的文件copy到hdfs虽然问题来了recordMessage到准点就会报错rename失败是不是第二个线程把Log目录下所有文件都占有了?这要如何解决请各位大神告知,谢谢了!

解决方案

时间: 2024-11-16 13:27:21

log4j Rename失败,一些线程的问题的相关文章

c语言编程-调用文件重命名函数rename失败,errno的值为17,如何解决?

问题描述 调用文件重命名函数rename失败,errno的值为17,如何解决? void onMenuDele(char *id) { FILE *p=fopen("f:employee.txt","r"); //打开文件 if(p==NULL) { printf("Sorry!employee.txt cannot open!n"); return ; } FILE *fp2=fopen("f:\employ.txt",&q

【转载】JAVA内存模型和线程安全

本文转载自http://shift-alt-ctrl.iteye.com/blog/1845309   一.JAVA内存模型(JMM,JAVA Memory Model):     运行时涉及到两种内存,主内存和工作区内存,其中工作区内存通常为CPU的高速缓存区用来加快内存数据读取操作的(各线程独立).所有的变量内容都存在主内存中,当需要对内存数据进行操作时,数据将会从主存中load到工作区缓存并由CPU计算和赋值操作,然后再由工作区内存write到主存中,读取时如果工作区内存中已经有(load

mysql processlist 线程状态(备查)

mysql processlist线程状态 今天遇见Creating sort index 忘了是什么状态,记录以备查. Analyzing 线程是对MyISAM 表的统计信息做分析(例如, ANALYZE TABLE ). checking permissions 线程是检查服务器是否具有所需的权限来执行该语句. Checking table 线程正在执行表检查操作. cleaning up 线程处理一个命令,并正准备以释放内存和重置某些状态变量. closing tables 线程是改变表中

JAVA内存模型和线程安全

一.JAVA内存模型(JMM,JAVA Memory Model):     运行时涉及到两种内存,主内存和工作区内存,其中工作区内存通常为CPU的高速缓存区用来加快内存数据读取操作的(各线程独立).所有的变量内容都存在主内存中,当需要对内存数据进行操作时,数据将会从主存中load到工作区缓存并由CPU计算和赋值操作,然后再由工作区内存write到主存中,读取时如果工作区内存中已经有(loaded)则直接使用;工作区内存保存了线程使用的变量的副本,线程不可以直接操作主内存,只能操作工作区内存,对

C#同一个类只能被有限个线程使用吗

问题描述 C#同一个类只能被有限个线程使用吗 我使用了一个post,get的类,多个线程分别声明使用一个它的对象进行http请求发送和response接收,可是我发现部分线程在开始发送http请求的时候就终止了,我把那个类复制了一份,改了个名字,让那些失败的线程使用这个新复制的类结果程序正常运行,于是就产生了这个问题,一个类只能被有限个线程访问吗?(该类不包含static成员,所有函数值处理http请求和return接收的数据) 解决方案 如果一个类内部使用了必须同步的对象,那么的确开多个线程是

由一个rename user的问题说开去

在数据库中对于修改用户名,在11g以前一直有一种攻略,那就是修改数据字典基表user$,这种方式的优点就是简单粗暴,当然缺点就是后果不可控.至于有什么更多的风险,其实还是未知.当然从官方的文档和支持中来看,是没有这个功能的,推荐的做法也都是数据迁移这种方式,这一点上和其它的数据库相比,感觉Oracle是比较苛刻.Oracle和MySQL中的用户 在mysql之中这是一件很轻松的事情.其实mysql之中的用户和Oracle的用户的概念和含义也有很大的差别.所以在此不偷换概念.从我的简单认识来看,用

Log4j官方文档翻译(一、基本介绍)

log4j是使用java语言编写的可靠的.快速的.灵活的日志框架,它是基于Apache的license. log4j支持c,c++,c#,perl,python,ruby等语言.在运行时通过额外的配置文件配置,提供不同的日志级别以及多种日志输出种类,比如数据库,文件,控制台,syslog等等. log4j有三个主要部分: loggers 负责捕获日志信息 appenders 负责输出信息到不同的目的地 layouts 负责使用不同的样式输出日志 log4j的特性: 线程安全 优化速度 基于命名的

Oralce 数据库的灾难恢复

随着办公自动化和电子商务的飞速发展,企业对信息系统的依赖性越来越高,数据库作为信息系统的核心担当着重要的角色.尤其在一些对数据可靠性要求很高的行业如银行.证券.电信等,如果发生意外停机或数据丢失其损失会十分惨重.为此数据库管理员应针对具体的业务要求制定详细的数据库备份与灾难恢复策略,并通过模拟故障对每种可能的情况进行严格测试,只有这样才能保证数据的高可用性.数据库的备份是一个长期的过程,而恢复只在发生事故后进行,恢复可以看作是备份的逆过程,恢复的程度的好坏很大程度上依赖于备份的情况.此外,数据库

深度解析Java8 – AbstractQueuedSynchronizer的实现分析(上)

本文首发在infoQ :www.infoq.com/cn/articles/jdk1.8-abstractqueuedsynchronizer 前言: Java中的FutureTask作为可异步执行任务并可获取执行结果而被大家所熟知,通常可以使用future.get()来获取线程的执行结果,在线程执行结束之前,get方法会一直阻塞状态,直到call()返回,其优点是使用线程异步执行任务的情况下还可以获取到线程的执行结果,但是FutureTask的以上功能却是依靠通过一个叫AbstractQueu