用java如何实现将大的日志文件分隔成小文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用java如何实现将大的日志文件分隔成小文件相关的知识,希望对你有一定的参考价值。
答的好,增加分!
谢了,这个我知道,我想要的是日志文件要切割成等大的小文件的实现方法。
比如如下配置
### set log levels ###
log4j.rootLogger =debug,stdout,D,E
###CONSOLE###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = %dABSOLUTE %5p %c1:%L - %m%n
###FILE###
log4j.appender.D =org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = D:\\logs\\log.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-dyyyy-MM-dd HH:mm:ss [ %l:%t:%r ] - [ %p ] %m%n
###ERROR TO ANOTHER FILE###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File = D:\\logs\\error.log
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-dyyyy-MM-dd HH:mm:ss [ %l:%t:%r ] - [ %p ] %m%n 参考技术B 用该类进行读写文件。。
RandomAccessFile
void seek(long pos)
设置到此文件开头测量到的文件指针偏移量,在该位置发生下一个读取或写入操作。
可以设置 pos的值为 0 就行了。。
自己去查一下API文档可以更好的理解。。
在将大的txt文件读入R中的变量之前对其进行子集化[重复]
【中文标题】在将大的txt文件读入R中的变量之前对其进行子集化[重复]【英文标题】:subsetting a large txt file before reading it into the variable in R [duplicate] 【发布时间】:2014-07-29 01:24:37 【问题描述】:我有一个大的 txt 文件(大约 2 百万行)。第一列是格式为 01/01/2006 的日期。 值用 ; 分隔
data <- read.table("largeFile.txt", sep=";")
dataToUse <- data[data$Date >= 01/02/2007 && data$Date <= 02/02/2007,]
示例行:
16/12/2006;17:36:00;5.224;0.478;232.990;22.400;0.000;1.000;16.000
上面的代码也不起作用,但是有没有办法先进行子集化,然后将数据加载到数据变量中?由于文件很大,加载需要一些时间?
【问题讨论】:
首先,学习help("&&")
,了解为什么应该使用&
。然后查看包 data.table 中的fread
函数以加快导入速度。
另外,看看***.com/questions/1727772/…
【参考方案1】:
要使子集起作用,您需要引号和少一个 & 号。
dataToUse <- data[data$Date >= "01/02/2007" & data$Date <= "02/02/2007", ]
您也可以使用subset()
函数。
subset(data, Date >= "01/02/2007" & Date <= "02/02/2007")
接下来,如果日期列应该是一个日期类变量,您可以使用read.table()
中的参数colClasses
设置它的类。如果您愿意,可以通过这种方式设置所有列类,或者只使用一种方式。在将 colClasses
用于日期类变量之前,请确保您的日期格式正确。
最后,为了在将数据读入 R 之前对其进行子集化,我建议在终端或 shell 中使用 shell/unix 命令。 grep
、awk
、sed
等函数可以在将数据发送到 R 之前轻松快速地减少数据。在 Windows 上,我建议您下载 Cygwin(它免费且快速),显然只是终端在基于 linux 的机器中。
【讨论】:
+1 建议使用 grep。以上是关于用java如何实现将大的日志文件分隔成小文件的主要内容,如果未能解决你的问题,请参考以下文章