【问题标题】:Log Parser recursive file read日志解析器递归文件读取
【发布时间】:2013-05-03 04:39:20
【问题描述】:

我正在尝试使用 Microsoft 的 Log Parser 来读取多组 IIS 日志文件。现在,我的查询工作正常,但是,要使其正常工作,我需要列出文件直接存在于其下的目录。

我希望能够在高级目录下进行递归搜索。我已经通过 DLL 找到了如何执行此操作,但我无法通过命令提示符找到如何执行此操作。

必须有一个简单的解决方案,我只是想念它。

【问题讨论】:

    标签: logparser


    【解决方案1】:

    -recurse:-1 选项添加到命令行。检查输入格式的可用命令行选项:C:\>logparser -h -i:IIS

    示例输出:

    Input format: IIS (Microsoft IIS Log Format)
    Parses Microsoft IIS log files
    
    FROM syntax:
    
     <filename> | <SiteID> [, <filename> | <SiteID> ... ]
     <SiteID> = '<' SiteID '>'
     SiteID can be a SiteID number, a fully qualified ADSI Path (e.g.
     "//GABRIEGI1/W3SVC/1"), or a Site name (e.g. "My External Site"), eventually
     containing wildcards
    
    Parameters:
    
     -locale            <locale name>     : 3-letter ID of the log file locale
                                            [default value=DEF]
     -returnExtraFields ON|OFF            : Return additional fields in
                                            Parameters field [default value=OFF]
     -iCodepage         <codepage ID>     : Input codepage (-2=guess from
                                            filename and/or LogInUTF8 property)
                                            [default value=guess from filename
                                            and/or LogInUTF8 property]
     -recurse           <level>           : Max subdirectory recursion level
                                            (0=no recurse, -1=all levels)
                                            [default value=0]
     -minDateMod        <date>            : Minimum file last modified date
                                            [default value=not specified]
     -iCheckpoint       <checkpoint file> : Save checkpoint information to this
                                            file [default value=no checkpoint]
    
    Fields:
    
      LogFilename (S) LogRow (I)          UserIP (S)          UserName (S)
      Date (T)        Time (T)            ServiceInstance (S) HostName (S)
      ServerIP (S)    TimeTaken (I)       BytesSent (I)       BytesReceived (I)
      StatusCode (I)  Win32StatusCode (I) RequestType (S)     Target (S)
      Parameters (S)
    

    【讨论】:

    • 谢谢,我一直在运行它,但它总是说它是一个无效的标志。可用的标志取决于文件输入类型的设置。
    • 完全正确 - 您选择哪种输入格式?如果您没有指定任何输入格式,Log Parser 将根据您的文件为您找出一个,您可以通过查看第一行的 WARNING 输出来判断它选择了哪个。了解您使用的输入格式对于确定递归选项是否可用至关重要。
    【解决方案2】:

    如果导入格式设置为 W3C,我无法运行 -recurse。 (-i:W3C)

    为此,我只是在指定文件/文件夹路径时在 Powershell 中添加了以下内容。例如 $httpLogPath = "Get-ChildItem Y:\Data\folder* -include *.log -recurse"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-15
      • 1970-01-01
      • 2016-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多