标签: logfiles

使用Python获取文件的最后n行,类似于tail

我正在为Web应用程序编写一个日志文件查看器,为此我想通过日志文件的行分页.文件中的项目是基于行的,底部是最新项目.

所以我需要一种tail()方法,可以n从底部读取行并支持偏移量.我想出的是这样的:

def tail(f, n, offset=0):
    """Reads a n lines from f with an offset of offset lines."""
    avg_line_length = 74
    to_read = n + offset
    while 1:
        try:
            f.seek(-(avg_line_length * to_read), 2)
        except IOError:
            # woops.  apparently file is smaller than what we want
            # to step back, go to the beginning instead
            f.seek(0)
        pos = f.tell()
        lines = f.read().splitlines()
        if len(lines) >= to_read or pos == 0:
            return lines[-to_read:offset and -offset or None]
        avg_line_length …
Run Code Online (Sandbox Code Playgroud)

python file-io file tail logfiles

174
推荐指数
10
解决办法
14万
查看次数

如何在Linux中查看日志文件并在查看时应用自定义过滤器?

我需要阅读Linux系统上的一些巨大的日志文件.日志中有很多混乱.目前我正在做这样的事情:

cat logfile.txt | grep -v "IgnoreThis\|IgnoreThat" | less
Run Code Online (Sandbox Code Playgroud)

但它很麻烦 - 每次我想添加另一个过滤器时,我都需要退出less并编辑命令行.一些滤波器相对复杂并且可以是多线的.

我想通过日志阅读一些方法来应用过滤器,以及在某处保存这些过滤器的方法.

有没有可以为我做这个的工具?我无法安装新软件,所以希望它已经安装好了 - 例如,less,vi,Python或Perl lib等等.

更改生成日志以生成更少的代码不是一种选择.

linux logfiles filter

42
推荐指数
2
解决办法
3万
查看次数

如果关键字触发然后执行命令,Shellscript监视日志文件?

是否有一种廉价的方式来监视日志文件tail -f log.txt,如果[error]出现类似的东西,执行一个命令?

谢谢.

linux shell logfiles

35
推荐指数
3
解决办法
6万
查看次数

如何使用Nagios监视日志文件

我们正在使用Nagios来监控我们的网络并取得巨大成功.但是,我们有一个关键应用程序错误的系统日志,当我设置check_log时,它看起来不像监视设备那样好.

问题是:

  • 它只显示最后一个条目
  • 似乎没有办法确认严重错误并使监视器恢复到良好状态

nagios是错误的工具,还是我们只是没有设置服务监控权?

这是我的参赛作品

# log file
define command{
        command_name    check_log
        command_line    $USER1$/check_log -F /var/log/applications/appcrit.log -O /tmp/appcrit.log -q ?
}


# Define the log monitering service
define service{
        name                            logfile-check           ;
        use                             generic-service         ;
        check_period                    24x7                    ;
        max_check_attempts              1                       ;
        normal_check_interval           5                       ;
        retry_check_interval            1                       ;
        contact_groups                  admins                  ;
        notification_options            w,u,c,r                 ;
        notification_period             24x7                    ;
        register                        0                       ;
        }

define service{
        use                             logfile-check
        host_name                       localhost
        service_description             CritLogFile
        check_command                   check_log
}
Run Code Online (Sandbox Code Playgroud)

nagios logfiles

23
推荐指数
2
解决办法
7万
查看次数

Linux显示上周的平均CPU负载

在Linux机器上,我需要显示上周每小时的平均CPU利用率.这些信息是否记录在某处?或者我是否需要编写一个每15分钟唤醒一次的脚本来将/ proc/loadavg复制 到日志文件中?

编辑:我不允许使用Linux以外的任何工具.

linux cpu load logfiles

19
推荐指数
2
解决办法
7万
查看次数

log4j与System.out.println - 记录器的优势?

我在项目中第一次使用log4j.一位程序员告诉我,使用System.out.println被认为是一种糟糕的风格,log4j就像现在的日志记录标准一样.

我们做了很多JUnit测试 - System.out结果证明更难测试.

因此我开始将log4j用于Console控制器类,这只是处理命令行参数.

// log4j logger config 
org.apache.log4j.BasicConfigurator.configure();
Logger logger = LoggerFactory.getLogger(Console.class);
Category cat = Category.getRoot(); 
Run Code Online (Sandbox Code Playgroud)

似乎工作:

logger.debug("String");
Run Code Online (Sandbox Code Playgroud)

生产:

1 [main] DEBUG project.prototype.controller.Console  - String
Run Code Online (Sandbox Code Playgroud)

我有两个问题:

  1. 根据我的基本理解,如果在记录器上启用了调试模式,那么使用这个记录器可以为我提供编写带时间戳的日志文件的舒适选项 - 而不是垃圾邮件控制台?
  2. 为什么System.out.println更难测试?我搜索了stackoverflow并找到了一个测试配方.所以我想知道使用log4j我真正获得了什么样的优势.

java logging junit timestamp logfiles

19
推荐指数
2
解决办法
2万
查看次数

使用命令行工具按日期拆分access.log文件

我有一个Apache access.log文件,大小约为35GB.通过它不再是一种选择,不需要等待很多.

我希望通过使用日期作为拆分标准将其拆分为许多小文件.

日期格式[15/Oct/2011:12:02:02 +0000].任何想法我怎么能只使用bash脚本,标准文本操作程序(grep,awk,sed和喜欢),管道和重定向?

输入文件名是access.log.我希望输出文件具有这样的格式access.apache.15_Oct_2011.log(这可以解决问题,但在排序时不太好.)

bash text logfiles

16
推荐指数
3
解决办法
2万
查看次数

php.ini中的log_errors_max_len = 1024,但是php日志不断增长

正如标题所说,我已经设置PHP错误日志中的最大长度,但它也在不断增加多少远大于1024我使用了正确的php.ini,我已经重启apache等上的权限php日志是666.

php permissions logfiles maxlength

10
推荐指数
3
解决办法
1万
查看次数

从logfile中提取最后10分钟

试图找到一个简单的方法来观看最近的事件(从不到10分钟),我试过这个:

awk "/^$(date --date="-10 min" "+%b %_d %H:%M")/{p++} p" /root/test.txt
Run Code Online (Sandbox Code Playgroud)

但它没有按预期工作......

日志文件格式如下:

Dec 18 09:48:54 Blah
Dec 18 09:54:47 blah bla
Dec 18 09:55:33 sds
Dec 18 09:55:38 sds
Dec 18 09:57:58 sa
Dec 18 09:58:10 And so on...
Run Code Online (Sandbox Code Playgroud)

bash datetime date logfiles

9
推荐指数
3
解决办法
3万
查看次数

IIS 6记录MIA

我正在尝试找到我的IIS日志文件,我似乎遇到了问题.

首先我进入IIS并右键点击相关网站并选择了属性...

在"网站"选项卡下,选中"启用日志记录"复选框.

活动日志格式设置为W3C扩展日志文件格式.

要获取存储日志文件的位置,请单击日志格式下拉列表旁边的"属性"按钮.它有这条道路C:\WINDOWS\system32\LogFiles.然后在该输入框下面,它具有日志文件名称W3SVC1919798527\exyymmdd.log

问题是该文件夹W3SVC1919798527中不存在该C:\WINDOWS\system32\LogFiles文件夹...它也不会出现在PC上任何地方......我做错了什么?我在哪里可以找到该站点的日志文件?或者我完全误解了日志文件是什么以及在哪里找到它?

谢谢

iis-6 logfiles

8
推荐指数
1
解决办法
1万
查看次数

标签 统计

logfiles ×10

linux ×3

bash ×2

cpu ×1

date ×1

datetime ×1

file ×1

file-io ×1

filter ×1

iis-6 ×1

java ×1

junit ×1

load ×1

logging ×1

maxlength ×1

nagios ×1

permissions ×1

php ×1

python ×1

shell ×1

tail ×1

text ×1

timestamp ×1