【问题标题】:YQL Web Server Log File regex exampleYQL Web 服务器日志文件正则表达式示例
【发布时间】:2009-09-03 00:18:11
【问题描述】:

我正在寻找使用 YQL 处理 Web 服务器日志文件的示例代码。

YQL table for Apache access logs 询问“Apache 访问日志表怎么样?” spullara 回复:

如果我们添加这样的内容,可能会使用基于正则表达式的行阅读器,然后您可以将其应用于 apache 日志。

后来Paul Tarjan 说:

现在有一个正则表达式表

http://developer.yahoo.com/yql/console/?q=select%20%20from%20regex%20where%20expression%20%3D%20%22%28.%29%22%20and%20text%3D%22test%22&env=http%3A %2F%2Fdatatables.org%2Falltables.env

所以,看起来正则表达式功能已添加到 YQL。

我希望看到一个完整的 YQL 示例,该示例使用此正则表达式功能并使用 this sample log file。这是the sample log file的一行:

69.12.127.10 - - 02/Sep/2009:01:53:52 MDT "GET /holeman/cgi-bin/get_page.cgi?../cxx/sw_stack" HTTP/1.1 200 999 Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.2) Gecko/20090810 Ubuntu/9.10 (karmic) Firefox/3.5.2

仅显示上述示例行所引用的 IP 地址和页面:

69.12.127.10 /holeman/cgi-bin/get_page.cgi?../cxx/sw_stack

在 Paul Tarjan 示例中,expressiontext 的值是硬编码的。如何在文件http://sky.prohosting.com/holeman/yql/serverlog/20090902.txt 中引用text?另外,对于expression,如何使用引用而不是硬编码值?

【问题讨论】:

  • 正则表达式表仅支持其查询中的文本和表达式。所以,在它支持 url 参数之前,它不能用于解析在线日志文件。

标签: regex yql


【解决方案1】:

这是一个非常原始的正则表达式来做你想做的事。

$.getJSON('http://query.yahooapis.com/v1/public/yql?q=select%20match1%2Cmatch7%20from%20regex%20where%20expression%20%3D%20%22%5E(%5C%5CS%2B)%20(%5C%5CS%2B)%20(%5C%5CS%2B)%20(%5C%5CS%2B)%20(%5C%5CS%2B)%20%5C%5C%5C%22(%5C%5CS%2B)%20(%5C%5CS%2B)%5C%5C%5C%22%22%20and%20text%3D%2269.12.127.10%20-%20-%2002%2FSep%2F2009%3A01%3A53%3A52%20MDT%20%5C%22GET%20%2Fholeman%2Fcgi-bin%2Fget_page.cgi%5C%5C%3F..%2Fcxx%2Fsw_stack%5C%22%20HTTP%2F1.1%20200%20999%20Mozilla%2F5.0%20(X11%3B%20U%3B%20Linux%20x86_64%3B%20en-US%3B%20rv%3A1.9.1.2)%20Gecko%2F20090810%20Ubuntu%2F9.10%20(karmic)%20Firefox%2F3.5.2%0A%22&format=json&env=http%3A%2F%2Fdatatables.org%2Falltables.env&callback=?', function(data) {
  console.log( data.query.results.matches.match1 );
  console.log( data.query.results.matches.match7 );
  });

【讨论】:

  • 我正在寻找一个完整的示例,其中包括引用日志文件而不是单个硬编码行,因为我以前没有使用过 YQL。我更新了问题。
  • 执行您的请求是否顺利?有点让追随者悬而未决。 ;)
猜你喜欢
  • 2015-12-09
  • 1970-01-01
  • 2021-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-07
  • 1970-01-01
相关资源
最近更新 更多