{"id":18981421,"url":"https://github.com/awncorp/flight-recorder","last_synced_at":"2025-10-17T02:23:53.868Z","repository":{"id":77256511,"uuid":"246290889","full_name":"awncorp/flight-recorder","owner":"awncorp","description":"Logging for Distributed Systems","archived":false,"fork":false,"pushed_at":"2020-06-27T21:39:16.000Z","size":76,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-01T11:27:35.603Z","etag":null,"topics":["distributed-systems","logger","logging","perl","perl5"],"latest_commit_sha":null,"homepage":"https://metacpan.org/release/FlightRecorder","language":"Perl","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/awncorp.png","metadata":{"files":{"readme":"README","changelog":"CHANGES","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-03-10T12:09:09.000Z","updated_at":"2022-07-24T20:58:48.000Z","dependencies_parsed_at":"2023-02-23T17:15:38.039Z","dependency_job_id":null,"html_url":"https://github.com/awncorp/flight-recorder","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/awncorp%2Fflight-recorder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/awncorp%2Fflight-recorder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/awncorp%2Fflight-recorder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/awncorp%2Fflight-recorder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/awncorp","download_url":"https://codeload.github.com/awncorp/flight-recorder/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239985768,"owners_count":19729523,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["distributed-systems","logger","logging","perl","perl5"],"created_at":"2024-11-08T16:09:48.414Z","updated_at":"2025-10-17T02:23:48.834Z","avatar_url":"https://github.com/awncorp.png","language":"Perl","funding_links":[],"categories":[],"sub_categories":[],"readme":"NAME\n\n    FlightRecorder - Structured Logging\n\nABSTRACT\n\n    Logging for Distributed Systems\n\nSYNOPSIS\n\n      package main;\n    \n      use FlightRecorder;\n    \n      my $f = FlightRecorder-\u003enew(\n        auto =\u003e undef\n      );\n    \n      # $f-\u003ebegin('try');\n      # $f-\u003edebug('something happened');\n      # $f-\u003eend;\n\nDESCRIPTION\n\n    This package provides a simple mechanism for logging events with\n    context, serializing and distributing the event logs, and producing a\n    transcript of activity to provide insight into the behavior of\n    distributed systems.\n\nINTEGRATES\n\n    This package integrates behaviors from:\n\n    Data::Object::Role::Pluggable\n\n    Data::Object::Role::Throwable\n\nLIBRARIES\n\n    This package uses type constraints from:\n\n    Types::Standard\n\nATTRIBUTES\n\n    This package has the following attributes:\n\n auto\n\n      auto(Maybe[FileHandle])\n\n    This attribute is read-only, accepts (Maybe[FileHandle]) values, and is\n    optional.\n\n format\n\n      format(Str)\n\n    This attribute is read-write, accepts (Str) values, and is optional.\n\n head\n\n      head(Str)\n\n    This attribute is read-only, accepts (Str) values, and is optional.\n\n item\n\n      item(HashRef)\n\n    This attribute is read-only, accepts (HashRef) values, and is optional.\n\n level\n\n      level(Enum[qw(debug info warn error fatal)])\n\n    This attribute is read-only, accepts (Enum[qw(debug info warn error\n    fatal)]) values, and is optional.\n\n logs\n\n      logs(ArrayRef[HashRef])\n\n    This attribute is read-only, accepts (ArrayRef[HashRef]) values, and is\n    optional.\n\n refs\n\n      refs(HashRef)\n\n    This attribute is read-only, accepts (HashRef) values, and is optional.\n\nMETHODS\n\n    This package implements the following methods:\n\n begin\n\n      begin(Str $label) : Object\n\n    The begin method creates and logs a new context.\n\n    begin example #1\n\n        # given: synopsis\n      \n        $f-\u003ebegin('test')\n\n branch\n\n      branch(Str $label) : Object\n\n    The branch method creates and returns a new FlightRecorder object which\n    shares the event log with the parent object. This method creates a new\n    context when called.\n\n    branch example #1\n\n        # given: synopsis\n      \n        $f-\u003ebegin('test')-\u003ebranch('next')\n\n count\n\n      count(Maybe[Str] $level) : Int\n\n    The count method returns the total number of log entries, or the number\n    of log entries matching the log level specified.\n\n    count example #1\n\n        # given: synopsis\n      \n        $f-\u003ebegin('try')-\u003edebug('something happened')-\u003eend;\n        $f-\u003ecount;\n\n    count example #2\n\n        # given: synopsis\n      \n        $f-\u003einfo('something happened');\n        $f-\u003ecount('info');\n\n    count example #3\n\n        # given: synopsis\n      \n        $f-\u003efatal('something happened');\n        $f-\u003ecount('fatal');\n\n data\n\n      data(HashRef[Str] $data) : Object\n\n    The data method associates arbitrary metadata with the last event.\n\n    data example #1\n\n        # given: synopsis\n      \n        $f-\u003edebug('something happened')-\u003edata({\n          error =\u003e 'unknown at ./example line 10'\n        });\n\n debug\n\n      debug(Str @message) : Object\n\n    The debug method logs a debug level event with context.\n\n    debug example #1\n\n        # given: synopsis\n      \n        $f-\u003edebug('something happened')\n\n end\n\n      end() : Object\n\n    The end method logs the end of the current context.\n\n    end example #1\n\n        # given: synopsis\n      \n        $f-\u003ebegin('main')-\u003eend\n\n error\n\n      error(Str @message) : Object\n\n    The error method logs an error level event with context.\n\n    error example #1\n\n        # given: synopsis\n      \n        $f-\u003eerror('something happened')\n\n fatal\n\n      fatal(Str @message) : Object\n\n    The fatal method logs a fatal level event with context.\n\n    fatal example #1\n\n        # given: synopsis\n      \n        $f-\u003efatal('something happened')\n\n info\n\n      info(Str @message) : Object\n\n    The info method logs an info level event with context.\n\n    info example #1\n\n        # given: synopsis\n      \n        $f-\u003einfo('something happened')\n\n output\n\n      output(FileHandle $handle) : Str\n\n    The output method outputs the last event using the format defined in\n    the format attribute. This method is called automatically after each\n    log-event if the auto attribute is set, which is by default set to\n    STDOUT.\n\n    output example #1\n\n        # given: synopsis\n      \n        $f-\u003ebegin('test')-\u003eoutput\n\n    output example #2\n\n        package main;\n      \n        use FlightRecorder;\n      \n        my $f = FlightRecorder-\u003enew;\n      \n        $f-\u003ebegin('try');\n      \n        # $f-\u003eoutput\n      \n        $f-\u003edebug('something happened');\n      \n        # $f-\u003eoutput\n      \n        $f-\u003eend;\n      \n        # $f-\u003eoutput\n\n report\n\n      report(Str $name, Str $level) : Object\n\n    The report method loads and returns the specified report plugin.\n\n    report example #1\n\n        # given: synopsis\n      \n        $f-\u003ereport('verbose')\n\n    report example #2\n\n        # given: synopsis\n      \n        $f-\u003ereport('succinct', 'fatal')\n\n reset\n\n      reset() : Object\n\n    The reset method returns an object to its initial state.\n\n    reset example #1\n\n        # given: synopsis\n      \n        $f-\u003ebegin('try')-\u003edebug('something happened')-\u003eend;\n        $f-\u003ereset;\n\n    reset example #2\n\n        # given: synopsis\n      \n        $f-\u003ebegin('try')-\u003edebug('something happened')-\u003eend;\n        $f-\u003ebranch('main')-\u003eswitch('try')-\u003efatal('something happened')-\u003eend;\n        $f-\u003ereset;\n\n serialize\n\n      serialize() : HashRef\n\n    The serialize method normalizes and serializes the event log and\n    returns it as a hashref.\n\n    serialize example #1\n\n        # given: synopsis\n      \n        $f-\u003ebegin('main')-\u003eserialize\n\n simple\n\n      simple() : Object\n\n    The simple method loads and returns the\n    FlightRecorder::Plugin::ReportSimple report plugin.\n\n    simple example #1\n\n        # given: synopsis\n      \n        $f-\u003esimple\n\n succinct\n\n      succinct() : Object\n\n    The succinct method loads and returns the\n    FlightRecorder::Plugin::ReportSuccinct report plugin.\n\n    succinct example #1\n\n        # given: synopsis\n      \n        $f-\u003esuccinct\n\n switch\n\n      switch(Str $name) : Object\n\n    The switch method finds and sets the current context based on the name\n    provided.\n\n    switch example #1\n\n        # given: synopsis\n      \n        $f-\u003ebegin('main')-\u003ebegin('test')-\u003eswitch('main')\n\n verbose\n\n      verbose() : Object\n\n    The verbose method loads and returns the\n    FlightRecorder::Plugin::ReportVerbose report plugin.\n\n    verbose example #1\n\n        # given: synopsis\n      \n        $f-\u003everbose\n\n warn\n\n      warn(Str @message) : Object\n\n    The warn method logs a warn level event with context.\n\n    warn example #1\n\n        # given: synopsis\n      \n        $f-\u003ewarn('something happened')\n\nAUTHOR\n\n    Al Newkirk, awncorp@cpan.org\n\nLICENSE\n\n    Copyright (C) 2011-2019, Al Newkirk, et al.\n\n    This is free software; you can redistribute it and/or modify it under\n    the terms of the The Apache License, Version 2.0, as elucidated in the\n    \"license file\"\n    \u003chttps://github.com/iamalnewkirk/flight-recorder/blob/master/LICENSE\u003e.\n\nPROJECT\n\n    Wiki \u003chttps://github.com/iamalnewkirk/flight-recorder/wiki\u003e\n\n    Project \u003chttps://github.com/iamalnewkirk/flight-recorder\u003e\n\n    Initiatives \u003chttps://github.com/iamalnewkirk/flight-recorder/projects\u003e\n\n    Milestones \u003chttps://github.com/iamalnewkirk/flight-recorder/milestones\u003e\n\n    Contributing\n    \u003chttps://github.com/iamalnewkirk/flight-recorder/blob/master/CONTRIBUTE.md\u003e\n\n    Issues \u003chttps://github.com/iamalnewkirk/flight-recorder/issues\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fawncorp%2Fflight-recorder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fawncorp%2Fflight-recorder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fawncorp%2Fflight-recorder/lists"}