{"_id":"morgan","_rev":"4084747","name":"morgan","description":"HTTP request logger middleware for node.js","dist-tags":{"latest":"1.10.1"},"maintainers":[{"name":"dougwilson","email":""},{"name":"ulisesgascon","email":""}],"time":{"modified":"2025-12-01T22:11:44.000Z","created":"2014-02-08T19:19:24.247Z","1.10.1":"2025-07-17T16:14:26.192Z","1.10.0":"2020-03-20T18:00:13.316Z","1.9.1":"2018-09-11T01:12:35.037Z","1.9.0":"2017-09-27T02:39:05.095Z","1.8.2":"2017-05-24T02:01:41.057Z","1.8.1":"2017-02-11T01:48:30.165Z","1.8.0":"2017-02-05T00:47:54.712Z","1.7.0":"2016-02-19T05:00:03.572Z","1.6.1":"2015-07-04T03:04:11.234Z","1.6.0":"2015-06-13T06:17:35.005Z","1.5.3":"2015-05-11T06:43:31.370Z","1.5.2":"2015-03-15T20:10:36.552Z","1.5.1":"2014-12-31T19:23:19.367Z","1.5.0":"2014-11-07T06:13:59.487Z","1.4.1":"2014-10-23T03:07:40.290Z","1.4.0":"2014-10-17T01:28:49.389Z","1.3.2":"2014-09-28T03:41:37.865Z","1.3.1":"2014-09-14T16:45:45.169Z","1.3.0":"2014-09-02T04:40:10.622Z","1.2.3":"2014-08-17T03:02:44.575Z","1.2.2":"2014-07-27T19:27:37.659Z","1.2.1":"2014-07-26T20:36:30.481Z","1.2.0":"2014-07-20T04:43:26.387Z","1.1.1":"2014-05-21T00:37:33.859Z","1.1.0":"2014-05-19T02:58:09.506Z","1.0.1":"2014-05-05T02:24:08.112Z","1.0.0":"2014-02-08T19:19:24.247Z"},"users":{"83057396":true,"afftee":true,"afollestad":true,"jmervine":true,"japh":true,"wilbeibi":true,"codematix":true,"pierrenel":true,"boustanihani":true,"mswanson1524":true,"mr.raindrop":true,"bkimminich":true,"kingcron":true,"salvatorelab":true,"kabomi":true,"anthonybruno":true,"rstellar":true,"zhangyaochun":true,"silverbeetle":true,"notbrain":true,"pstoev":true,"akiva":true,"tsm91":true,"r3nya":true,"kws4679":true,"dlpowless":true,"kh3phr3n":true,"gaboo":true,"idev":true,"f124275809":true,"ronder":true,"andreaspag":true,"prabhash1785":true,"drdanryan":true,"robermac":true,"manxisuo":true,"amirmehmood":true,"simplyianm":true,"dongxu":true,"shaneli":true,"nickeljew":true,"skarface":true,"pengzhisun":true,"elrolito":true,"jmorris":true,"alexkval":true,"staraple":true,"markthethomas":true,"iamwiz":true,"sanketss84":true,"godion":true,"broxmgs":true,"alexcoady":true,"junjiansyu":true,"webnicola":true,"ishitcno1":true,"sculove":true,"jabbrwcky":true,"glebec":true,"nadimix":true,"luuhoangnam":true,"nanhualyq":true,"program247365":true,"leny":true,"nex":true,"nikitka_m":true,"gochomugo":true,"xngiser":true,"adamlu":true,"nonoroazoro":true,"mtimofiiv":true,"jack546":true,"nathanhornby":true,"hibrahimsafak":true,"flockonus":true,"amanvirk":true,"macdaddy":true,"boyw165":true,"jeffb_incontact":true,"leandro.maioral":true,"iliyat":true,"santihbc":true,"monolithed":true,"jessaustin":true,"arifulhb":true,"aahz":true,"isik":true,"karlbateman":true,"crazyjingling":true,"saravananr":true,"ssh0702":true,"chrisyipw":true,"ddffx":true,"jonatasnona":true,"vwal":true,"karlbright":true,"decoda":true,"gollojs":true,"esundahl":true,"mjurincic":true,"ruyadorno":true,"nmccready":true,"bpatel":true,"kinday":true,"erikvold":true,"ral.amgstromg":true,"karl.alnebratt":true,"jerkovicl":true,"cspotcode":true,"kparkov":true,"austinwo":true,"m0dred":true,"chadyred":true,"shiva127":true,"luckyulin":true,"honzajde":true,"windhamdavid":true,"silva23":true,"kenkao":true,"imd92":true,"panlw":true,"wangnan0610":true,"andrew.medvedev":true,"magicxiao85":true,"bian17888":true,"nickleefly":true,"figroc":true,"snowdream":true,"shadowlong":true,"novalu":true,"thomashzhu":true,"evan2x":true,"cfleschhut":true,"yatsu":true,"wzbg":true,"jamesbedont":true,"msjcaetano":true,"sasquatch":true,"thomas.miele":true,"eserozvataf":true,"algonzo":true,"swookie":true,"davidbraun":true,"lwgojustgo":true,"brightchen":true,"dkannan":true,"vishwasc":true,"ansuman":true,"coolhanddev":true,"hughescr":true,"mikestaub":true,"garenyondem":true,"ryanlee":true,"arnold-almeida":true,"pedrotp":true,"amenadiel":true,"wisecolt":true,"goodnighthsu":true,"craigdmckenna":true,"hyungdookil":true,"koskokos":true,"surajkarnati":true,"vladyslav.tserman":true,"spanser":true,"asm2hex":true,"jasonwang1888":true,"igorissen":true,"hinx":true,"elviopita":true,"jfernandezgersol":true,"tonyljl526":true,"samlaudev":true,"princetoad":true,"mseminatore":true,"bapinney":true,"clarenceho":true,"emarcs":true,"p4r4n0id":true,"itskdk":true,"usama.ashraf":true,"hiu_yan_chong":true,"obouchari":true,"sroveda":true,"nickeltobias":true,"snarky":true,"siirial":true,"pmasa":true,"tobitobitobi":true,"sqrtthree":true,"ekmpls":true,"ramzesucr":true,"yash3492":true,"duskalbatross":true,"rbecheras":true,"ridermansb":true,"klombomb":true,"shanewholloway":true,"james3299":true,"hugovila":true,"shide":true,"sternelee":true,"joshuadavidson":true,"alin.alexa":true,"mevlutsahin":true,"lakipatel":true,"itsakt":true,"n0f3":true,"mluberry":true,"bkarak":true,"nagra":true,"kjarisk":true,"dcavalcante":true,"migliozziz":true,"ymk":true,"xyyjk":true,"mickaelb":true,"phoenix-xsy":true,"apopek":true,"hifaraz":true,"manikantag":true,"jmsherry":true,"crisperdue":true,"scottfreecode":true,"andreipetcu":true,"shakakira":true,"largepuma":true,"staydan":true,"ethancai":true,"jtrh":true,"rocket0191":true,"adrian110288":true,"defking":true,"abuelwafa":true,"gejiawen":true,"wozhizui":true,"phoenixsoul":true,"jonathas":true,"slmcassio":true,"kistoryg":true,"sansgumen":true,"mr-smiley":true,"ykimnpmjs":true,"quafoo":true,"zixinliango":true,"calldanfeng":true,"13lank.null":true,"chunxchun":true,"mhaidarh":true,"nohomey":true,"fahadjadoon":true,"icerainnuaa":true,"dzhou777":true,"craigpatten":true,"langri-sha":true,"mrwanashraf":true,"jamiechoi":true,"plashchynski":true,"strydom":true,"hitalos":true,"landy2014":true,"walnut":true,"isaacvitor":true,"ab.moon":true,"webmato":true,"geekish":true,"vchouhan":true,"boopathisakthivel.in":true,"nxc":true,"mrbgit":true,"bobmhong":true,"evdokimovm":true,"charlietango592":true,"ognjen.jevremovic":true,"leonzhao":true,"sachacr":true,"giussa_dan":true,"pr-anoop":true,"ejmason":true,"chirag8642":true,"steel1990":true,"madalozzo":true,"stevepsharpe":true,"wittrura":true,"ungurys":true,"archcorsair":true,"chinawolf_wyp":true,"oxocode":true,"gabestevy":true,"nate-river":true,"alexey-mish":true,"thomas.li":true,"rajivmehtajs":true,"cunningdj":true,"junos":true,"jaguarj":true,"bengi":true,"jk6":true,"vicsandoli":true,"shreyawhiz":true,"tomchao":true,"astesio":true,"kodekracker":true,"sadmansamee":true,"chinjon":true,"serge-nikitin":true,"stoneren":true,"gpuente":true,"kevinhassan":true,"shuoshubao":true,"milan322":true,"kaashin":true,"nonthasart":true,"modood":true,"dylanh724":true,"superchenney":true,"liuningww":true,"ray0214":true,"cedx":true,"aquafadas":true,"sibawite":true,"wangxx":true,"chiaychang":true,"windyh":true,"bigbird92":true,"456wyc":true,"u19950930":true,"terrychan":true,"jmkim9":true,"karzanosman984":true,"alek-s":true,"martinspinks":true,"kuzmicheff":true,"zhyq0826":true,"loind":true,"wayn":true,"shenyu":true,"jakedemonaco":true,"thangakumar":true,"ctlnrd":true,"maxisam":true,"jaychase":true,"goulash1971":true,"jasonzhouu":true,"heartnett":true,"paulkolesnyk":true,"colleowino":true,"ldq-first":true,"isayme":true,"gruebes":true,"npmmurali":true,"asfrom30":true,"thor_bux":true,"sermir":true,"robinblomberg":true,"bro_strummer":true,"cbetancourt":true,"t0ngt0n9":true,"clementoh":true,"nazy":true,"samar":true,"processbrain":true,"jream":true,"iamninad":true,"yeming":true,"luffy84217":true,"themadjoker":true,"icodeforcookies":true,"ferx":true,"ouroboros99":true,"bigp":true,"wallenberg12":true,"kwabenaberko":true,"sbskl":true,"dccunni171":true,"guyharwood":true,"wfalkwallace":true,"owillo":true,"hduhdc":true,"stormcrows":true,"leor":true,"danielheene":true,"n8finch":true,"jirqoadai":true,"hanhq":true,"danieljameskay":true,"bracken":true,"cr8tiv":true,"alfredom1124":true,"ezeikel":true,"rubenjose75":true,"renz0":true,"nuwaio":true,"laoshaw":true,"helcat":true,"kivava":true,"nguyenvanhoang26041994":true,"shivayl":true,"asadm2706":true,"iotale":true,"ethanliew":true,"avivharuzi":true,"yb1997":true,"akinhwan":true,"imaginegenesis":true,"mdedirudianto":true,"mrhuangyuhui":true,"udaygowda":true,"ironheartbj18":true,"obsessiveprogrammer":true,"ephigenia":true,"falka":true,"he313572052":true,"natterstefan":true,"karnavpargi":true,"liuheng":true,"kingzez":true,"wisetc":true,"rparris":true,"diogocapela":true,"crwnvr":true,"mayq0422":true,"srksumanth":true,"elussich":true,"tenpenny":true,"endsoul":true,"sayansaha":true,"edmondnow":true,"mohokh67":true,"shajanjp":true,"d3ck":true,"mikroacse":true,"jazzmine":true,"losymear":true,"mauridev":true,"leomdg":true,"dariogg":true,"yanghcc":true,"xiechao06":true,"ahillier":true,"habiiev":true,"daizch":true,"vivekrp":true,"warraichtasawar":true,"dandrewgarvin":true,"dgmike":true,"mohammad-_-ahmad":true},"repository":{"type":"git","url":"git+https://github.com/expressjs/morgan.git"},"versions":{"1.10.1":{"name":"morgan","description":"HTTP request logger middleware for node.js","version":"1.10.1","contributors":[{"name":"Douglas Christopher Wilson","email":"doug@somethingdoug.com"},{"name":"Jonathan Ong","email":"me@jongleberry.com","url":"http://jongleberry.com"}],"license":"MIT","keywords":["express","http","logger","middleware"],"repository":{"type":"git","url":"git+https://github.com/expressjs/morgan.git"},"dependencies":{"basic-auth":"~2.0.1","debug":"2.6.9","depd":"~2.0.0","on-finished":"~2.3.0","on-headers":"~1.1.0"},"devDependencies":{"eslint":"6.8.0","eslint-config-standard":"14.1.1","eslint-plugin-import":"2.20.2","eslint-plugin-markdown":"1.0.2","eslint-plugin-node":"11.1.0","eslint-plugin-promise":"4.2.1","eslint-plugin-standard":"4.0.1","mocha":"10.4.0","nyc":"15.1.0","split":"1.0.1","supertest":"4.0.2"},"engines":{"node":">= 0.8.0"},"scripts":{"lint":"eslint --plugin markdown --ext js,md .","test":"mocha --check-leaks --reporter spec","test-ci":"nyc --reporter=lcov --reporter=text npm test","test-cov":"nyc --reporter=html --reporter=text npm test"},"_id":"morgan@1.10.1","gitHead":"05ee0a83e7dc6fd0ab5eacddde7aa2d5cc743fcf","bugs":{"url":"https://github.com/expressjs/morgan/issues"},"homepage":"https://github.com/expressjs/morgan#readme","_nodeVersion":"22.10.0","_npmVersion":"10.9.0","dist":{"shasum":"4e02e6a4465a48e26af540191593955d17f61570","size":9967,"noattachment":false,"key":"/morgan/-/morgan-1.10.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/morgan/download/morgan-1.10.1.tgz"},"_npmUser":{"name":"ulisesgascon","email":"ulisesgascondev@gmail.com"},"directories":{},"maintainers":[{"name":"dougwilson","email":""},{"name":"ulisesgascon","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/morgan_1.10.1_1752768866017_0.6676752978116725"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-07-17T16:14:26.192Z","publish_time":1752768866192,"_source_registry_name":"default","_cnpm_publish_time":1752768866192},"1.10.0":{"name":"morgan","description":"HTTP request logger middleware for node.js","version":"1.10.0","contributors":[{"name":"Douglas Christopher Wilson","email":"doug@somethingdoug.com"},{"name":"Jonathan Ong","email":"me@jongleberry.com","url":"http://jongleberry.com"}],"license":"MIT","keywords":["express","http","logger","middleware"],"repository":{"type":"git","url":"git+https://github.com/expressjs/morgan.git"},"dependencies":{"basic-auth":"~2.0.1","debug":"2.6.9","depd":"~2.0.0","on-finished":"~2.3.0","on-headers":"~1.0.2"},"devDependencies":{"eslint":"6.8.0","eslint-config-standard":"14.1.0","eslint-plugin-import":"2.20.1","eslint-plugin-markdown":"1.0.2","eslint-plugin-node":"9.2.0","eslint-plugin-promise":"4.2.1","eslint-plugin-standard":"4.0.1","mocha":"7.1.1","nyc":"15.0.0","split":"1.0.1","supertest":"4.0.2"},"engines":{"node":">= 0.8.0"},"scripts":{"lint":"eslint --plugin markdown --ext js,md .","test":"mocha --check-leaks --reporter spec --bail","test-ci":"nyc --reporter=text npm test","test-cov":"nyc --reporter=html --reporter=text npm test"},"gitHead":"c68d2eab4c6a5d9940895a6d1614964d44358642","bugs":{"url":"https://github.com/expressjs/morgan/issues"},"homepage":"https://github.com/expressjs/morgan#readme","_id":"morgan@1.10.0","_nodeVersion":"13.11.0","_npmVersion":"6.13.7","dist":{"shasum":"091778abc1fc47cd3509824653dae1faab6b17d7","size":9592,"noattachment":false,"key":"/morgan/-/morgan-1.10.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/morgan/download/morgan-1.10.0.tgz"},"maintainers":[{"name":"dougwilson","email":""},{"name":"ulisesgascon","email":""}],"_npmUser":{"name":"dougwilson","email":"doug@somethingdoug.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/morgan_1.10.0_1584727213227_0.7066876282414851"},"_hasShrinkwrap":false,"publish_time":1584727213316,"_cnpm_publish_time":1584727213316},"1.9.1":{"name":"morgan","description":"HTTP request logger middleware for node.js","version":"1.9.1","contributors":[{"name":"Douglas Christopher Wilson","email":"doug@somethingdoug.com"},{"name":"Jonathan Ong","email":"me@jongleberry.com","url":"http://jongleberry.com"}],"license":"MIT","keywords":["express","http","logger","middleware"],"repository":{"type":"git","url":"git+https://github.com/expressjs/morgan.git"},"dependencies":{"basic-auth":"~2.0.0","debug":"2.6.9","depd":"~1.1.2","on-finished":"~2.3.0","on-headers":"~1.0.1"},"devDependencies":{"eslint":"5.5.0","eslint-config-standard":"12.0.0","eslint-plugin-import":"2.14.0","eslint-plugin-markdown":"1.0.0-beta.6","eslint-plugin-node":"7.0.1","eslint-plugin-promise":"4.0.1","eslint-plugin-standard":"4.0.0","istanbul":"0.4.5","mocha":"2.5.3","split":"1.0.1","supertest":"1.1.0"},"engines":{"node":">= 0.8.0"},"scripts":{"lint":"eslint --plugin markdown --ext js,md .","test":"mocha --check-leaks --reporter spec --bail","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --check-leaks --reporter dot","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --check-leaks --reporter spec"},"gitHead":"572dd937f26d486babc709228c98fd15dd807408","bugs":{"url":"https://github.com/expressjs/morgan/issues"},"homepage":"https://github.com/expressjs/morgan#readme","_id":"morgan@1.9.1","_npmVersion":"5.6.0","_nodeVersion":"8.11.4","_npmUser":{"name":"dougwilson","email":"doug@somethingdoug.com"},"dist":{"shasum":"0a8d16734a1d9afbc824b99df87e738e58e2da59","size":9418,"noattachment":false,"key":"/morgan/-/morgan-1.9.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/morgan/download/morgan-1.9.1.tgz"},"maintainers":[{"name":"dougwilson","email":""},{"name":"ulisesgascon","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/morgan_1.9.1_1536628354837_0.49383079449866707"},"_hasShrinkwrap":false,"publish_time":1536628355037,"_cnpm_publish_time":1536628355037},"1.9.0":{"name":"morgan","description":"HTTP request logger middleware for node.js","version":"1.9.0","contributors":[{"name":"Douglas Christopher Wilson","email":"doug@somethingdoug.com"},{"name":"Jonathan Ong","email":"me@jongleberry.com","url":"http://jongleberry.com"}],"license":"MIT","keywords":["express","http","logger","middleware"],"repository":{"type":"git","url":"git+https://github.com/expressjs/morgan.git"},"dependencies":{"basic-auth":"~2.0.0","debug":"2.6.9","depd":"~1.1.1","on-finished":"~2.3.0","on-headers":"~1.0.1"},"devDependencies":{"eslint":"3.19.0","eslint-config-standard":"10.2.1","eslint-plugin-import":"2.7.0","eslint-plugin-markdown":"1.0.0-beta.6","eslint-plugin-node":"5.1.1","eslint-plugin-promise":"3.5.0","eslint-plugin-standard":"3.0.1","istanbul":"0.4.5","mocha":"2.5.3","split":"1.0.1","supertest":"1.1.0"},"files":["LICENSE","HISTORY.md","README.md","index.js"],"engines":{"node":">= 0.8.0"},"scripts":{"lint":"eslint --plugin markdown --ext js,md .","test":"mocha --check-leaks --reporter spec --bail","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --check-leaks --reporter dot","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --check-leaks --reporter spec"},"gitHead":"4def0fa6d4ac703dc5c76f901e997af667a27d65","bugs":{"url":"https://github.com/expressjs/morgan/issues"},"homepage":"https://github.com/expressjs/morgan#readme","_id":"morgan@1.9.0","_shasum":"d01fa6c65859b76fcf31b3cb53a3821a311d8051","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.11.1","_npmUser":{"name":"dougwilson","email":"doug@somethingdoug.com"},"dist":{"shasum":"d01fa6c65859b76fcf31b3cb53a3821a311d8051","size":9373,"noattachment":false,"key":"/morgan/-/morgan-1.9.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/morgan/download/morgan-1.9.0.tgz"},"maintainers":[{"name":"dougwilson","email":""},{"name":"ulisesgascon","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/morgan-1.9.0.tgz_1506479941546_0.9185023584868759"},"directories":{},"publish_time":1506479945095,"_cnpm_publish_time":1506479945095,"_hasShrinkwrap":false},"1.8.2":{"name":"morgan","description":"HTTP request logger middleware for node.js","version":"1.8.2","contributors":[{"name":"Douglas Christopher Wilson","email":"doug@somethingdoug.com"},{"name":"Jonathan Ong","email":"me@jongleberry.com","url":"http://jongleberry.com"}],"license":"MIT","keywords":["express","http","logger","middleware"],"repository":{"type":"git","url":"git+https://github.com/expressjs/morgan.git"},"dependencies":{"basic-auth":"~1.1.0","debug":"2.6.8","depd":"~1.1.0","on-finished":"~2.3.0","on-headers":"~1.0.1"},"devDependencies":{"eslint":"3.19.0","eslint-config-standard":"10.2.1","eslint-plugin-import":"2.2.0","eslint-plugin-markdown":"1.0.0-beta.6","eslint-plugin-node":"4.2.2","eslint-plugin-promise":"3.5.0","eslint-plugin-standard":"3.0.1","istanbul":"0.4.5","mocha":"2.5.3","split":"1.0.0","supertest":"1.1.0"},"files":["LICENSE","HISTORY.md","README.md","index.js"],"engines":{"node":">= 0.8.0"},"scripts":{"lint":"eslint --plugin markdown --ext js,md .","test":"mocha --check-leaks --reporter spec --bail","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --check-leaks --reporter dot","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --check-leaks --reporter spec"},"gitHead":"475ae38b5c308113bbf6b3a535351ceb2c419682","bugs":{"url":"https://github.com/expressjs/morgan/issues"},"homepage":"https://github.com/expressjs/morgan#readme","_id":"morgan@1.8.2","_shasum":"784ac7734e4a453a9c6e6e8680a9329275c8b687","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.3","_npmUser":{"name":"dougwilson","email":"doug@somethingdoug.com"},"dist":{"shasum":"784ac7734e4a453a9c6e6e8680a9329275c8b687","size":9049,"noattachment":false,"key":"/morgan/-/morgan-1.8.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/morgan/download/morgan-1.8.2.tgz"},"maintainers":[{"name":"dougwilson","email":""},{"name":"ulisesgascon","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/morgan-1.8.2.tgz_1495591299170_0.17843790841288865"},"directories":{},"publish_time":1495591301057,"_hasShrinkwrap":false,"_cnpm_publish_time":1495591301057},"1.8.1":{"name":"morgan","description":"HTTP request logger middleware for node.js","version":"1.8.1","contributors":[{"name":"Douglas Christopher Wilson","email":"doug@somethingdoug.com"},{"name":"Jonathan Ong","email":"me@jongleberry.com","url":"http://jongleberry.com"}],"license":"MIT","keywords":["express","http","logger","middleware"],"repository":{"type":"git","url":"git+https://github.com/expressjs/morgan.git"},"dependencies":{"basic-auth":"~1.1.0","debug":"2.6.1","depd":"~1.1.0","on-finished":"~2.3.0","on-headers":"~1.0.1"},"devDependencies":{"eslint":"3.15.0","eslint-config-standard":"6.2.1","eslint-plugin-markdown":"1.0.0-beta.3","eslint-plugin-promise":"3.4.0","eslint-plugin-standard":"2.0.1","istanbul":"0.4.5","mocha":"2.5.3","split":"1.0.0","supertest":"1.1.0"},"files":["LICENSE","HISTORY.md","README.md","index.js"],"engines":{"node":">= 0.8.0"},"scripts":{"lint":"eslint --plugin markdown --ext js,md .","test":"mocha --check-leaks --reporter spec --bail","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --check-leaks --reporter dot","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --check-leaks --reporter spec"},"gitHead":"29daba369e388522656183463fae1fb1a1dda609","bugs":{"url":"https://github.com/expressjs/morgan/issues"},"homepage":"https://github.com/expressjs/morgan#readme","_id":"morgan@1.8.1","_shasum":"f93023d3887bd27b78dfd6023cea7892ee27a4b1","_from":".","_npmVersion":"2.15.9","_nodeVersion":"4.6.1","_npmUser":{"name":"dougwilson","email":"doug@somethingdoug.com"},"dist":{"shasum":"f93023d3887bd27b78dfd6023cea7892ee27a4b1","size":8973,"noattachment":false,"key":"/morgan/-/morgan-1.8.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/morgan/download/morgan-1.8.1.tgz"},"maintainers":[{"name":"dougwilson","email":""},{"name":"ulisesgascon","email":""}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/morgan-1.8.1.tgz_1486777709464_0.3650192436762154"},"directories":{},"publish_time":1486777710165,"_cnpm_publish_time":1486777710165,"_hasShrinkwrap":false},"1.8.0":{"name":"morgan","description":"HTTP request logger middleware for node.js","version":"1.8.0","contributors":[{"name":"Douglas Christopher Wilson","email":"doug@somethingdoug.com"},{"name":"Jonathan Ong","email":"me@jongleberry.com","url":"http://jongleberry.com"}],"license":"MIT","keywords":["express","http","logger","middleware"],"repository":{"type":"git","url":"git+https://github.com/expressjs/morgan.git"},"dependencies":{"basic-auth":"~1.1.0","debug":"2.6.0","depd":"~1.1.0","on-finished":"~2.3.0","on-headers":"~1.0.1"},"devDependencies":{"eslint":"3.15.0","eslint-config-standard":"6.2.1","eslint-plugin-markdown":"1.0.0-beta.3","eslint-plugin-promise":"3.4.0","eslint-plugin-standard":"2.0.1","istanbul":"0.4.5","mocha":"2.5.3","split":"1.0.0","supertest":"1.1.0"},"files":["LICENSE","HISTORY.md","README.md","index.js"],"engines":{"node":">= 0.8.0"},"scripts":{"lint":"eslint --plugin markdown --ext js,md .","test":"mocha --check-leaks --reporter spec --bail","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --check-leaks --reporter dot","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --check-leaks --reporter spec"},"gitHead":"b0e3c90ee07ba549a2b5e835268500756eb6e154","bugs":{"url":"https://github.com/expressjs/morgan/issues"},"homepage":"https://github.com/expressjs/morgan#readme","_id":"morgan@1.8.0","_shasum":"7884d7816b7e5a22db11a9e3a572b197a0e5566c","_from":".","_npmVersion":"2.15.9","_nodeVersion":"4.6.1","_npmUser":{"name":"dougwilson","email":"doug@somethingdoug.com"},"dist":{"shasum":"7884d7816b7e5a22db11a9e3a572b197a0e5566c","size":8926,"noattachment":false,"key":"/morgan/-/morgan-1.8.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/morgan/download/morgan-1.8.0.tgz"},"maintainers":[{"name":"dougwilson","email":""},{"name":"ulisesgascon","email":""}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/morgan-1.8.0.tgz_1486255673952_0.6137548687402159"},"directories":{},"publish_time":1486255674712,"_cnpm_publish_time":1486255674712,"_hasShrinkwrap":false},"1.7.0":{"name":"morgan","description":"HTTP request logger middleware for node.js","version":"1.7.0","contributors":[{"name":"Douglas Christopher Wilson","email":"doug@somethingdoug.com"},{"name":"Jonathan Ong","email":"me@jongleberry.com","url":"http://jongleberry.com"}],"license":"MIT","repository":{"type":"git","url":"https://github.com/expressjs/morgan"},"dependencies":{"basic-auth":"~1.0.3","debug":"~2.2.0","depd":"~1.1.0","on-finished":"~2.3.0","on-headers":"~1.0.1"},"devDependencies":{"istanbul":"0.4.2","mocha":"2.4.5","split":"1.0.0","supertest":"1.1.0"},"files":["LICENSE","HISTORY.md","README.md","index.js"],"engines":{"node":">= 0.8.0"},"scripts":{"test":"mocha --check-leaks --reporter spec --bail","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --check-leaks --reporter dot","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --check-leaks --reporter spec"},"gitHead":"5da5ff1f5446e3f3ff29d29a2d6582712612bf89","bugs":{"url":"https://github.com/expressjs/morgan/issues"},"homepage":"https://github.com/expressjs/morgan","_id":"morgan@1.7.0","_shasum":"eb10ca8e50d1abe0f8d3dad5c0201d052d981c62","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"dougwilson","email":"doug@somethingdoug.com"},"maintainers":[{"name":"dougwilson","email":""},{"name":"ulisesgascon","email":""}],"dist":{"shasum":"eb10ca8e50d1abe0f8d3dad5c0201d052d981c62","size":8287,"noattachment":false,"key":"/morgan/-/morgan-1.7.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/morgan/download/morgan-1.7.0.tgz"},"_npmOperationalInternal":{"host":"packages-6-west.internal.npmjs.com","tmp":"tmp/morgan-1.7.0.tgz_1455857999079_0.07957377028651536"},"directories":{},"publish_time":1455858003572,"_cnpm_publish_time":1455858003572,"_hasShrinkwrap":false},"1.6.1":{"name":"morgan","description":"HTTP request logger middleware for node.js","version":"1.6.1","contributors":[{"name":"Douglas Christopher Wilson","email":"doug@somethingdoug.com"},{"name":"Jonathan Ong","email":"me@jongleberry.com","url":"http://jongleberry.com"}],"license":"MIT","repository":{"type":"git","url":"https://github.com/expressjs/morgan"},"dependencies":{"basic-auth":"~1.0.3","debug":"~2.2.0","depd":"~1.0.1","on-finished":"~2.3.0","on-headers":"~1.0.0"},"devDependencies":{"istanbul":"0.3.17","mocha":"2.2.5","split":"1.0.0","supertest":"1.0.1"},"files":["LICENSE","HISTORY.md","README.md","index.js"],"engines":{"node":">= 0.8.0"},"scripts":{"test":"mocha --check-leaks --reporter spec --bail","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --check-leaks --reporter dot","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --check-leaks --reporter spec"},"gitHead":"300286d1472928b10f723e8ea138533dfbd3b521","bugs":{"url":"https://github.com/expressjs/morgan/issues"},"homepage":"https://github.com/expressjs/morgan","_id":"morgan@1.6.1","_shasum":"5fd818398c6819cba28a7cd6664f292fe1c0bbf2","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"dougwilson","email":"doug@somethingdoug.com"},"maintainers":[{"name":"dougwilson","email":""},{"name":"ulisesgascon","email":""}],"dist":{"shasum":"5fd818398c6819cba28a7cd6664f292fe1c0bbf2","size":8019,"noattachment":false,"key":"/morgan/-/morgan-1.6.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/morgan/download/morgan-1.6.1.tgz"},"directories":{},"publish_time":1435979051234,"_cnpm_publish_time":1435979051234,"_hasShrinkwrap":false},"1.6.0":{"name":"morgan","description":"HTTP request logger middleware for node.js","version":"1.6.0","contributors":[{"name":"Douglas Christopher Wilson","email":"doug@somethingdoug.com"},{"name":"Jonathan Ong","email":"me@jongleberry.com","url":"http://jongleberry.com"}],"license":"MIT","repository":{"type":"git","url":"https://github.com/expressjs/morgan"},"dependencies":{"basic-auth":"~1.0.2","debug":"~2.2.0","depd":"~1.0.1","on-finished":"~2.3.0","on-headers":"~1.0.0"},"devDependencies":{"istanbul":"0.3.15","mocha":"2.2.5","split":"1.0.0","supertest":"1.0.1"},"files":["LICENSE","HISTORY.md","README.md","index.js"],"engines":{"node":">= 0.8.0"},"scripts":{"test":"mocha --check-leaks --reporter spec --bail","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --check-leaks --reporter dot","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --check-leaks --reporter spec"},"gitHead":"8fbacc95c984be4c2538b67cd7294946c661d993","bugs":{"url":"https://github.com/expressjs/morgan/issues"},"homepage":"https://github.com/expressjs/morgan","_id":"morgan@1.6.0","_shasum":"1a56ee781e2349a741ab0adf34f16ce4f25b1806","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"dougwilson","email":"doug@somethingdoug.com"},"maintainers":[{"name":"dougwilson","email":""},{"name":"ulisesgascon","email":""}],"dist":{"shasum":"1a56ee781e2349a741ab0adf34f16ce4f25b1806","size":8001,"noattachment":false,"key":"/morgan/-/morgan-1.6.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/morgan/download/morgan-1.6.0.tgz"},"directories":{},"publish_time":1434176255005,"_cnpm_publish_time":1434176255005,"_hasShrinkwrap":false},"1.5.3":{"name":"morgan","description":"HTTP request logger middleware for node.js","version":"1.5.3","contributors":[{"name":"Douglas Christopher Wilson","email":"doug@somethingdoug.com"},{"name":"Jonathan Ong","email":"me@jongleberry.com","url":"http://jongleberry.com"}],"license":"MIT","repository":{"type":"git","url":"https://github.com/expressjs/morgan"},"dependencies":{"basic-auth":"~1.0.1","debug":"~2.2.0","depd":"~1.0.1","on-finished":"~2.2.1"},"devDependencies":{"istanbul":"0.3.9","mocha":"~2.2.4","supertest":"~0.15.0"},"files":["LICENSE","HISTORY.md","README.md","index.js"],"engines":{"node":">= 0.8.0"},"scripts":{"test":"mocha --check-leaks --reporter spec --bail","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --check-leaks --reporter dot","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --check-leaks --reporter spec"},"gitHead":"7d5a190e6e22c4871c15aff2143bf76b808052cf","bugs":{"url":"https://github.com/expressjs/morgan/issues"},"homepage":"https://github.com/expressjs/morgan","_id":"morgan@1.5.3","_shasum":"8adb4e72f9e5c5436e5d93f42910835f79da9fdf","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"dougwilson","email":"doug@somethingdoug.com"},"maintainers":[{"name":"dougwilson","email":""},{"name":"ulisesgascon","email":""}],"dist":{"shasum":"8adb4e72f9e5c5436e5d93f42910835f79da9fdf","size":7010,"noattachment":false,"key":"/morgan/-/morgan-1.5.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/morgan/download/morgan-1.5.3.tgz"},"directories":{},"publish_time":1431326611370,"_cnpm_publish_time":1431326611370,"_hasShrinkwrap":false},"1.5.2":{"name":"morgan","description":"HTTP request logger middleware for node.js","version":"1.5.2","contributors":[{"name":"Douglas Christopher Wilson","email":"doug@somethingdoug.com"},{"name":"Jonathan Ong","email":"me@jongleberry.com","url":"http://jongleberry.com"}],"license":"MIT","repository":{"type":"git","url":"https://github.com/expressjs/morgan"},"dependencies":{"basic-auth":"1.0.0","debug":"~2.1.3","depd":"~1.0.0","on-finished":"~2.2.0"},"devDependencies":{"istanbul":"0.3.7","mocha":"~2.2.1","supertest":"~0.15.0"},"files":["LICENSE","HISTORY.md","README.md","index.js"],"engines":{"node":">= 0.8.0"},"scripts":{"test":"mocha --check-leaks --reporter spec --bail","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --check-leaks --reporter dot","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --check-leaks --reporter spec"},"gitHead":"b08705a7dc059dabc671a7b58c4bf6d81fccce85","bugs":{"url":"https://github.com/expressjs/morgan/issues"},"homepage":"https://github.com/expressjs/morgan","_id":"morgan@1.5.2","_shasum":"34c1a0e7c2d5ad3ed78f0ef3257b8ac7c35d7cff","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"dougwilson","email":"doug@somethingdoug.com"},"maintainers":[{"name":"dougwilson","email":""},{"name":"ulisesgascon","email":""}],"dist":{"shasum":"34c1a0e7c2d5ad3ed78f0ef3257b8ac7c35d7cff","size":6749,"noattachment":false,"key":"/morgan/-/morgan-1.5.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/morgan/download/morgan-1.5.2.tgz"},"directories":{},"publish_time":1426450236552,"_cnpm_publish_time":1426450236552,"_hasShrinkwrap":false},"1.5.1":{"name":"morgan","description":"HTTP request logger middleware for node.js","version":"1.5.1","contributors":[{"name":"Douglas Christopher Wilson","email":"doug@somethingdoug.com"},{"name":"Jonathan Ong","email":"me@jongleberry.com","url":"http://jongleberry.com"}],"license":"MIT","repository":{"type":"git","url":"https://github.com/expressjs/morgan"},"dependencies":{"basic-auth":"1.0.0","debug":"~2.1.1","depd":"~1.0.0","on-finished":"~2.2.0"},"devDependencies":{"istanbul":"0.3.5","mocha":"~2.1.0","supertest":"~0.15.0"},"files":["LICENSE","HISTORY.md","README.md","index.js"],"engines":{"node":">= 0.8.0"},"scripts":{"test":"mocha --check-leaks --reporter spec --bail","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --check-leaks --reporter dot","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --check-leaks --reporter spec"},"gitHead":"ae84a264fb9cdd7b4d7e2bf19d93b0b51da99996","bugs":{"url":"https://github.com/expressjs/morgan/issues"},"homepage":"https://github.com/expressjs/morgan","_id":"morgan@1.5.1","_shasum":"a9688eed9187ab648d816fc09c696fae882e16f6","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"dougwilson","email":"doug@somethingdoug.com"},"maintainers":[{"name":"dougwilson","email":""},{"name":"ulisesgascon","email":""}],"dist":{"shasum":"a9688eed9187ab648d816fc09c696fae882e16f6","size":6694,"noattachment":false,"key":"/morgan/-/morgan-1.5.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/morgan/download/morgan-1.5.1.tgz"},"directories":{},"publish_time":1420053799367,"_cnpm_publish_time":1420053799367,"_hasShrinkwrap":false},"1.5.0":{"name":"morgan","description":"http request logger middleware for node.js","version":"1.5.0","author":{"name":"Jonathan Ong","email":"me@jongleberry.com","url":"http://jongleberry.com"},"contributors":[{"name":"Douglas Christopher Wilson","email":"doug@somethingdoug.com"}],"license":"MIT","repository":{"type":"git","url":"https://github.com/expressjs/morgan"},"dependencies":{"basic-auth":"1.0.0","debug":"~2.1.0","depd":"~1.0.0","on-finished":"2.1.1"},"devDependencies":{"istanbul":"0.3.2","mocha":"~2.0.0","supertest":"~0.14.0"},"files":["LICENSE","HISTORY.md","index.js"],"engines":{"node":">= 0.8.0"},"scripts":{"test":"mocha --check-leaks --reporter spec --bail","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --check-leaks --reporter dot","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --check-leaks --reporter spec"},"gitHead":"262c40de4df67f1972d10600157a79e4967d9bc5","bugs":{"url":"https://github.com/expressjs/morgan/issues"},"homepage":"https://github.com/expressjs/morgan","_id":"morgan@1.5.0","_shasum":"6d2cf4f142a3c78b36762711d79b13f8e35b5e83","_from":".","_npmVersion":"1.4.21","_npmUser":{"name":"dougwilson","email":"doug@somethingdoug.com"},"maintainers":[{"name":"dougwilson","email":""},{"name":"ulisesgascon","email":""}],"dist":{"shasum":"6d2cf4f142a3c78b36762711d79b13f8e35b5e83","size":6665,"noattachment":false,"key":"/morgan/-/morgan-1.5.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/morgan/download/morgan-1.5.0.tgz"},"directories":{},"publish_time":1415340839487,"_cnpm_publish_time":1415340839487,"_hasShrinkwrap":false},"1.4.1":{"name":"morgan","description":"http request logger middleware for node.js","version":"1.4.1","author":{"name":"Jonathan Ong","email":"me@jongleberry.com","url":"http://jongleberry.com"},"contributors":[{"name":"Douglas Christopher Wilson","email":"doug@somethingdoug.com"}],"license":"MIT","repository":{"type":"git","url":"https://github.com/expressjs/morgan"},"dependencies":{"basic-auth":"1.0.0","debug":"~2.1.0","depd":"~1.0.0","on-finished":"2.1.1"},"devDependencies":{"istanbul":"0.3.2","mocha":"~2.0.0","should":"~4.1.0","supertest":"~0.14.0"},"files":["LICENSE","HISTORY.md","index.js"],"engines":{"node":">= 0.8.0"},"scripts":{"test":"mocha --check-leaks --reporter spec --bail","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --check-leaks --reporter dot","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --check-leaks --reporter spec"},"gitHead":"e2cae6ad7d772a0f1c90aa680f908b5f8d29e2c7","bugs":{"url":"https://github.com/expressjs/morgan/issues"},"homepage":"https://github.com/expressjs/morgan","_id":"morgan@1.4.1","_shasum":"cd9600c3fa74e2fdf22ba0f1d026c20cb96f25fe","_from":".","_npmVersion":"1.4.21","_npmUser":{"name":"dougwilson","email":"doug@somethingdoug.com"},"maintainers":[{"name":"dougwilson","email":""},{"name":"ulisesgascon","email":""}],"dist":{"shasum":"cd9600c3fa74e2fdf22ba0f1d026c20cb96f25fe","size":5842,"noattachment":false,"key":"/morgan/-/morgan-1.4.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/morgan/download/morgan-1.4.1.tgz"},"directories":{},"publish_time":1414033660290,"_cnpm_publish_time":1414033660290,"_hasShrinkwrap":false},"1.4.0":{"name":"morgan","description":"http request logger middleware for node.js","version":"1.4.0","author":{"name":"Jonathan Ong","email":"me@jongleberry.com","url":"http://jongleberry.com"},"contributors":[{"name":"Douglas Christopher Wilson","email":"doug@somethingdoug.com"}],"license":"MIT","repository":{"type":"git","url":"https://github.com/expressjs/morgan"},"dependencies":{"basic-auth":"1.0.0","debug":"~2.1.0","depd":"~1.0.0","on-finished":"2.1.0"},"devDependencies":{"istanbul":"0.3.2","mocha":"~1.21.5","should":"~4.0.4","supertest":"~0.14.0"},"files":["LICENSE","HISTORY.md","index.js"],"engines":{"node":">= 0.8.0"},"scripts":{"test":"mocha --check-leaks --reporter spec --bail","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --check-leaks --reporter dot","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --check-leaks --reporter spec"},"gitHead":"aab13ecbf74b1cb74bbe13ffe110576acbfb5279","bugs":{"url":"https://github.com/expressjs/morgan/issues"},"homepage":"https://github.com/expressjs/morgan","_id":"morgan@1.4.0","_shasum":"ce3c6ee28f794f85f59165476575b70ed386eb3d","_from":".","_npmVersion":"1.4.21","_npmUser":{"name":"dougwilson","email":"doug@somethingdoug.com"},"maintainers":[{"name":"dougwilson","email":""},{"name":"ulisesgascon","email":""}],"dist":{"shasum":"ce3c6ee28f794f85f59165476575b70ed386eb3d","size":5683,"noattachment":false,"key":"/morgan/-/morgan-1.4.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/morgan/download/morgan-1.4.0.tgz"},"directories":{},"publish_time":1413509329389,"_cnpm_publish_time":1413509329389,"_hasShrinkwrap":false},"1.3.2":{"name":"morgan","description":"http request logger middleware for node.js","version":"1.3.2","author":{"name":"Jonathan Ong","email":"me@jongleberry.com","url":"http://jongleberry.com"},"contributors":[{"name":"Douglas Christopher Wilson","email":"doug@somethingdoug.com"}],"license":"MIT","repository":{"type":"git","url":"https://github.com/expressjs/morgan"},"dependencies":{"basic-auth":"1.0.0","depd":"0.4.5","on-finished":"2.1.0"},"devDependencies":{"istanbul":"0.3.2","mocha":"~1.21.0","should":"~4.0.4","supertest":"~0.13.0"},"files":["LICENSE","HISTORY.md","index.js"],"engines":{"node":">= 0.8.0"},"scripts":{"test":"mocha --check-leaks --reporter spec --bail","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --check-leaks --reporter dot","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --check-leaks --reporter spec"},"gitHead":"90206954abeb32f867cd7db30bfa2eba64f1f0e8","bugs":{"url":"https://github.com/expressjs/morgan/issues"},"homepage":"https://github.com/expressjs/morgan","_id":"morgan@1.3.2","_shasum":"ac41aa15221ee4e5f2ac843896b6918139a18efd","_from":".","_npmVersion":"1.4.21","_npmUser":{"name":"dougwilson","email":"doug@somethingdoug.com"},"maintainers":[{"name":"dougwilson","email":""},{"name":"ulisesgascon","email":""}],"dist":{"shasum":"ac41aa15221ee4e5f2ac843896b6918139a18efd","size":5604,"noattachment":false,"key":"/morgan/-/morgan-1.3.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/morgan/download/morgan-1.3.2.tgz"},"directories":{},"publish_time":1411875697865,"_cnpm_publish_time":1411875697865,"_hasShrinkwrap":false},"1.3.1":{"name":"morgan","description":"http request logger middleware for node.js","version":"1.3.1","author":{"name":"Jonathan Ong","email":"me@jongleberry.com","url":"http://jongleberry.com"},"contributors":[{"name":"Douglas Christopher Wilson","email":"doug@somethingdoug.com"}],"license":"MIT","repository":{"type":"git","url":"https://github.com/expressjs/morgan"},"dependencies":{"basic-auth":"1.0.0","depd":"0.4.5","on-finished":"2.1.0"},"devDependencies":{"istanbul":"0.3.2","mocha":"~1.21.0","should":"~4.0.4","supertest":"~0.13.0"},"files":["LICENSE","HISTORY.md","index.js"],"engines":{"node":">= 0.8.0"},"scripts":{"test":"mocha --check-leaks --reporter spec --bail","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --check-leaks --reporter dot","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --check-leaks --reporter spec"},"gitHead":"a7192887a0f388d6f397bd70c836a63d6b8afc76","bugs":{"url":"https://github.com/expressjs/morgan/issues"},"homepage":"https://github.com/expressjs/morgan","_id":"morgan@1.3.1","_shasum":"5c2ae66ef1da03f0ac9f0f42840cca5d8bfec23f","_from":".","_npmVersion":"1.4.21","_npmUser":{"name":"dougwilson","email":"doug@somethingdoug.com"},"maintainers":[{"name":"dougwilson","email":""},{"name":"ulisesgascon","email":""}],"dist":{"shasum":"5c2ae66ef1da03f0ac9f0f42840cca5d8bfec23f","size":5550,"noattachment":false,"key":"/morgan/-/morgan-1.3.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/morgan/download/morgan-1.3.1.tgz"},"directories":{},"publish_time":1410713145169,"_cnpm_publish_time":1410713145169,"_hasShrinkwrap":false},"1.3.0":{"name":"morgan","description":"http request logger middleware for node.js","version":"1.3.0","author":{"name":"Jonathan Ong","email":"me@jongleberry.com","url":"http://jongleberry.com"},"contributors":[{"name":"Douglas Christopher Wilson","email":"doug@somethingdoug.com"}],"license":"MIT","repository":{"type":"git","url":"https://github.com/expressjs/morgan"},"dependencies":{"basic-auth":"1.0.0","bytes":"1.0.0","depd":"0.4.4","on-finished":"2.1.0"},"devDependencies":{"istanbul":"0.3.0","mocha":"~1.21.0","should":"~4.0.4","supertest":"~0.13.0"},"files":["LICENSE","HISTORY.md","index.js"],"engines":{"node":">= 0.8.0"},"scripts":{"test":"mocha --check-leaks --reporter spec --bail","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --check-leaks --reporter dot","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --check-leaks --reporter spec"},"gitHead":"0b44ec02f5561f77ea69185973aaf713f5de8375","bugs":{"url":"https://github.com/expressjs/morgan/issues"},"homepage":"https://github.com/expressjs/morgan","_id":"morgan@1.3.0","_shasum":"ae8e835e365b306a10803a90ddfe27b4a33594f9","_from":".","_npmVersion":"1.4.21","_npmUser":{"name":"dougwilson","email":"doug@somethingdoug.com"},"maintainers":[{"name":"dougwilson","email":""},{"name":"ulisesgascon","email":""}],"dist":{"shasum":"ae8e835e365b306a10803a90ddfe27b4a33594f9","size":5543,"noattachment":false,"key":"/morgan/-/morgan-1.3.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/morgan/download/morgan-1.3.0.tgz"},"directories":{},"publish_time":1409632810622,"_cnpm_publish_time":1409632810622,"_hasShrinkwrap":false},"1.2.3":{"name":"morgan","description":"http request logger middleware for node.js","version":"1.2.3","author":{"name":"Jonathan Ong","email":"me@jongleberry.com","url":"http://jongleberry.com"},"contributors":[{"name":"Douglas Christopher Wilson","email":"doug@somethingdoug.com"}],"license":"MIT","repository":{"type":"git","url":"https://github.com/expressjs/morgan"},"dependencies":{"basic-auth":"1.0.0","bytes":"1.0.0","depd":"0.4.4","on-finished":"2.1.0"},"devDependencies":{"istanbul":"0.3.0","mocha":"~1.21.0","should":"~4.0.4","supertest":"~0.13.0"},"engines":{"node":">= 0.8.0"},"scripts":{"test":"mocha --check-leaks --reporter spec --bail","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --check-leaks --reporter dot","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --check-leaks --reporter spec"},"gitHead":"733e01ec43b0b25c1a2b6bd1a6d3e5ca845ac95a","bugs":{"url":"https://github.com/expressjs/morgan/issues"},"homepage":"https://github.com/expressjs/morgan","_id":"morgan@1.2.3","_shasum":"3b0f1704df90255a542591abacd797891a8c40a1","_from":".","_npmVersion":"1.4.21","_npmUser":{"name":"dougwilson","email":"doug@somethingdoug.com"},"maintainers":[{"name":"dougwilson","email":""},{"name":"ulisesgascon","email":""}],"dist":{"shasum":"3b0f1704df90255a542591abacd797891a8c40a1","size":5025,"noattachment":false,"key":"/morgan/-/morgan-1.2.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/morgan/download/morgan-1.2.3.tgz"},"directories":{},"publish_time":1408244564575,"_cnpm_publish_time":1408244564575,"_hasShrinkwrap":false},"1.2.2":{"name":"morgan","description":"http request logger middleware for node.js","version":"1.2.2","author":{"name":"Jonathan Ong","email":"me@jongleberry.com","url":"http://jongleberry.com"},"contributors":[{"name":"Douglas Christopher Wilson","email":"doug@somethingdoug.com"}],"license":"MIT","repository":{"type":"git","url":"git://github.com/expressjs/morgan"},"dependencies":{"basic-auth":"1.0.0","bytes":"1.0.0","depd":"0.4.4","finished":"~1.2.2"},"devDependencies":{"istanbul":"0.3.0","mocha":"~1.21.0","should":"~4.0.4","supertest":"~0.13.0"},"engines":{"node":">= 0.8.0"},"scripts":{"test":"mocha --check-leaks --reporter spec --bail","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --check-leaks --reporter dot","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --check-leaks --reporter spec"},"bugs":{"url":"https://github.com/expressjs/morgan/issues"},"homepage":"https://github.com/expressjs/morgan","_id":"morgan@1.2.2","dist":{"shasum":"ad51246d8920e147883a32d9833c46d37c7b6275","size":4927,"noattachment":false,"key":"/morgan/-/morgan-1.2.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/morgan/download/morgan-1.2.2.tgz"},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"dougwilson","email":"doug@somethingdoug.com"},"maintainers":[{"name":"dougwilson","email":""},{"name":"ulisesgascon","email":""}],"directories":{},"publish_time":1406489257659,"_cnpm_publish_time":1406489257659,"_hasShrinkwrap":false},"1.2.1":{"name":"morgan","description":"http request logger middleware for node.js","version":"1.2.1","author":{"name":"Jonathan Ong","email":"me@jongleberry.com","url":"http://jongleberry.com"},"contributors":[{"name":"Douglas Christopher Wilson","email":"doug@somethingdoug.com"}],"license":"MIT","repository":{"type":"git","url":"git://github.com/expressjs/morgan"},"dependencies":{"basic-auth":"1.0.0","bytes":"1.0.0","depd":"0.4.3","finished":"~1.2.2"},"devDependencies":{"istanbul":"0.3.0","mocha":"~1.21.0","should":"~4.0.4","supertest":"~0.13.0"},"engines":{"node":">= 0.8.0"},"scripts":{"test":"mocha --check-leaks --reporter spec --bail","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --check-leaks --reporter dot","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --check-leaks --reporter spec"},"bugs":{"url":"https://github.com/expressjs/morgan/issues"},"homepage":"https://github.com/expressjs/morgan","_id":"morgan@1.2.1","dist":{"shasum":"ecb7a731f48dc74ec8b81bacb22c72d12830ab41","size":4888,"noattachment":false,"key":"/morgan/-/morgan-1.2.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/morgan/download/morgan-1.2.1.tgz"},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"dougwilson","email":"doug@somethingdoug.com"},"maintainers":[{"name":"dougwilson","email":""},{"name":"ulisesgascon","email":""}],"directories":{},"publish_time":1406406990481,"_cnpm_publish_time":1406406990481,"_hasShrinkwrap":false},"1.2.0":{"name":"morgan","description":"http request logger middleware for node.js","version":"1.2.0","author":{"name":"Jonathan Ong","email":"me@jongleberry.com","url":"http://jongleberry.com"},"contributors":[{"name":"Douglas Christopher Wilson","email":"doug@somethingdoug.com"}],"license":"MIT","repository":{"type":"git","url":"git://github.com/expressjs/morgan"},"dependencies":{"basic-auth":"1.0.0","bytes":"1.0.0","depd":"0.4.2","finished":"~1.2.2"},"devDependencies":{"istanbul":"0.3.0","mocha":"~1.20.1","should":"~4.0.4","supertest":"~0.13.0"},"engines":{"node":">= 0.8.0"},"scripts":{"test":"mocha --check-leaks --reporter spec --bail","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --check-leaks --reporter dot","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --check-leaks --reporter spec"},"bugs":{"url":"https://github.com/expressjs/morgan/issues"},"homepage":"https://github.com/expressjs/morgan","_id":"morgan@1.2.0","dist":{"shasum":"8dc17a57599598f80cd7a7e1e3b54e72c689910d","size":4835,"noattachment":false,"key":"/morgan/-/morgan-1.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/morgan/download/morgan-1.2.0.tgz"},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"dougwilson","email":"doug@somethingdoug.com"},"maintainers":[{"name":"dougwilson","email":""},{"name":"ulisesgascon","email":""}],"directories":{},"publish_time":1405831406387,"_cnpm_publish_time":1405831406387,"_hasShrinkwrap":false},"1.1.1":{"name":"morgan","description":"http request logger middleware for node.js","version":"1.1.1","author":{"name":"Jonathan Ong","email":"me@jongleberry.com","url":"http://jongleberry.com"},"contributors":[{"name":"Douglas Christopher Wilson","email":"doug@somethingdoug.com"}],"license":"MIT","repository":{"type":"git","url":"https://github.com/expressjs/morgan.git"},"bugs":{"url":"https://github.com/expressjs/morgan/issues"},"dependencies":{"bytes":"1.0.0"},"devDependencies":{"istanbul":"0.2.10","mocha":"~1.19.0","should":"~3.3.1","supertest":"~0.12.0"},"engines":{"node":">= 0.8.0"},"scripts":{"test":"mocha --require should --reporter dot","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --require should --reporter dot","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --require should --reporter spec"},"homepage":"https://github.com/expressjs/morgan","_id":"morgan@1.1.1","dist":{"shasum":"cde45d2e807ebcc439745846ea80392e69098146","size":4404,"noattachment":false,"key":"/morgan/-/morgan-1.1.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/morgan/download/morgan-1.1.1.tgz"},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"dougwilson","email":"doug@somethingdoug.com"},"maintainers":[{"name":"dougwilson","email":""},{"name":"ulisesgascon","email":""}],"directories":{},"publish_time":1400632653859,"_cnpm_publish_time":1400632653859,"_hasShrinkwrap":false},"1.1.0":{"name":"morgan","description":"http request logger middleware for node.js","version":"1.1.0","author":{"name":"Jonathan Ong","email":"me@jongleberry.com","url":"http://jongleberry.com"},"contributors":[{"name":"Douglas Christopher Wilson","email":"doug@somethingdoug.com"}],"license":"MIT","repository":{"type":"git","url":"https://github.com/expressjs/morgan.git"},"bugs":{"url":"https://github.com/expressjs/morgan/issues"},"dependencies":{"bytes":"1.0.0"},"devDependencies":{"coveralls":"2.10.0","istanbul":"0.2.10","mocha":"~1.19.0","should":"~3.3.1","supertest":"~0.12.0"},"engines":{"node":">= 0.8.0"},"scripts":{"test":"mocha --require should --reporter dot","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --require should --reporter dot","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --require should --reporter spec && (cat ./coverage/lcov.info | coveralls || true)"},"homepage":"https://github.com/expressjs/morgan","_id":"morgan@1.1.0","dist":{"shasum":"621a67a51c8eac09348d90f23bb7e4bb9c2c5ef6","size":4429,"noattachment":false,"key":"/morgan/-/morgan-1.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/morgan/download/morgan-1.1.0.tgz"},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"dougwilson","email":"doug@somethingdoug.com"},"maintainers":[{"name":"dougwilson","email":""},{"name":"ulisesgascon","email":""}],"directories":{},"publish_time":1400468289506,"_cnpm_publish_time":1400468289506,"_hasShrinkwrap":false},"1.0.1":{"name":"morgan","description":"connect's logger for node.js","version":"1.0.1","author":{"name":"Jonathan Ong","email":"me@jongleberry.com","url":"http://jongleberry.com"},"license":"MIT","repository":{"type":"git","url":"https://github.com/expressjs/morgan.git"},"bugs":{"url":"https://github.com/expressjs/morgan/issues"},"dependencies":{"bytes":"0.3.0"},"devDependencies":{"mocha":"~1.18.2","should":"~3.3.1","supertest":"~0.12.0"},"engines":{"node":">= 0.8.0"},"scripts":{"test":"mocha --require should --reporter spec --bail"},"homepage":"https://github.com/expressjs/morgan","_id":"morgan@1.0.1","dist":{"shasum":"8250a5d711de625453022945344d4d6762630c64","size":4032,"noattachment":false,"key":"/morgan/-/morgan-1.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/morgan/download/morgan-1.0.1.tgz"},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"dougwilson","email":"doug@somethingdoug.com"},"maintainers":[{"name":"dougwilson","email":""},{"name":"ulisesgascon","email":""}],"directories":{},"publish_time":1399256648112,"_cnpm_publish_time":1399256648112,"_hasShrinkwrap":false},"1.0.0":{"name":"morgan","description":"connect's logger for node.js","version":"1.0.0","author":{"name":"Jonathan Ong","email":"me@jongleberry.com","url":"http://jongleberry.com"},"license":"MIT","repository":{"type":"git","url":"https://github.com/expressjs/morgan.git"},"bugs":{"url":"https://github.com/expressjs/morgan/issues"},"dependencies":{"bytes":"~0.2.0"},"devDependencies":{"connect":"*","mocha":"*","should":"*","supertest":"*"},"scripts":{"test":"make test"},"homepage":"https://github.com/expressjs/morgan","_id":"morgan@1.0.0","dist":{"shasum":"83cf74b9f2d841901f1a9a6b8fa7a468d2e47a8d","size":3857,"noattachment":false,"key":"/morgan/-/morgan-1.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/morgan/download/morgan-1.0.0.tgz"},"_from":".","_npmVersion":"1.3.24","_npmUser":{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},"maintainers":[{"name":"dougwilson","email":""},{"name":"ulisesgascon","email":""}],"directories":{},"publish_time":1391887164247,"_hasShrinkwrap":false,"_cnpm_publish_time":1391887164247}},"readme":"# morgan\n\n[![NPM Version][npm-version-image]][npm-url]\n[![NPM Downloads][npm-downloads-image]][npm-url]\n[![Build Status][ci-image]][ci-url]\n[![Coverage Status][coveralls-image]][coveralls-url]\n\nHTTP request logger middleware for node.js\n\n> Named after [Dexter](http://en.wikipedia.org/wiki/Dexter_Morgan), a show you should not watch until completion.\n\n## Installation\n\nThis is a [Node.js](https://nodejs.org/en/) module available through the\n[npm registry](https://www.npmjs.com/). Installation is done using the\n[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally):\n\n```sh\n$ npm install morgan\n```\n\n## API\n\n<!-- eslint-disable no-unused-vars -->\n\n```js\nvar morgan = require('morgan')\n```\n\n### morgan(format, options)\n\nCreate a new morgan logger middleware function using the given `format` and `options`.\nThe `format` argument may be a string of a predefined name (see below for the names),\na string of a format string, or a function that will produce a log entry.\n\nThe `format` function will be called with three arguments `tokens`, `req`, and `res`,\nwhere `tokens` is an object with all defined tokens, `req` is the HTTP request and `res`\nis the HTTP response. The function is expected to return a string that will be the log\nline, or `undefined` / `null` to skip logging.\n\n#### Using a predefined format string\n\n<!-- eslint-disable no-undef -->\n\n```js\nmorgan('tiny')\n```\n\n#### Using format string of predefined tokens\n\n<!-- eslint-disable no-undef -->\n\n```js\nmorgan(':method :url :status :res[content-length] - :response-time ms')\n```\n\n#### Using a custom format function\n\n<!-- eslint-disable no-undef -->\n\n``` js\nmorgan(function (tokens, req, res) {\n  return [\n    tokens.method(req, res),\n    tokens.url(req, res),\n    tokens.status(req, res),\n    tokens.res(req, res, 'content-length'), '-',\n    tokens['response-time'](req, res), 'ms'\n  ].join(' ')\n})\n```\n\n#### Options\n\nMorgan accepts these properties in the options object.\n\n##### immediate\n\nWrite log line on request instead of response. This means that a requests will\nbe logged even if the server crashes, _but data from the response (like the\nresponse code, content length, etc.) cannot be logged_.\n\n##### skip\n\nFunction to determine if logging is skipped, defaults to `false`. This function\nwill be called as `skip(req, res)`.\n\n<!-- eslint-disable no-undef -->\n\n```js\n// EXAMPLE: only log error responses\nmorgan('combined', {\n  skip: function (req, res) { return res.statusCode < 400 }\n})\n```\n\n##### stream\n\nOutput stream for writing log lines, defaults to `process.stdout`.\n\n#### Predefined Formats\n\nThere are various pre-defined formats provided:\n\n##### combined\n\nStandard Apache combined log output.\n```\n:remote-addr - :remote-user [:date[clf]] \":method :url HTTP/:http-version\" :status :res[content-length] \":referrer\" \":user-agent\"\n# will output\n::1 - - [27/Nov/2024:06:21:42 +0000] \"GET /combined HTTP/1.1\" 200 2 \"-\" \"curl/8.7.1\"\n```\n\n##### common\n\nStandard Apache common log output.\n\n```\n:remote-addr - :remote-user [:date[clf]] \":method :url HTTP/:http-version\" :status :res[content-length]\n# will output\n::1 - - [27/Nov/2024:06:21:46 +0000] \"GET /common HTTP/1.1\" 200 2\n```\n\n##### dev\n\nConcise output colored by response status for development use. The `:status`\ntoken will be colored green for success codes, red for server error codes,\nyellow for client error codes, cyan for redirection codes, and uncolored\nfor information codes.\n\n```\n:method :url :status :response-time ms - :res[content-length]\n# will output\nGET /dev 200 0.224 ms - 2\n```\n\n##### short\n\nShorter than default, also including response time.\n\n```\n:remote-addr :remote-user :method :url HTTP/:http-version :status :res[content-length] - :response-time ms\n# will output\n::1 - GET /short HTTP/1.1 200 2 - 0.283 ms\n```\n\n##### tiny\n\nThe minimal output.\n\n```\n:method :url :status :res[content-length] - :response-time ms\n# will output\nGET /tiny 200 2 - 0.188 ms\n```\n\n#### Tokens\n\n##### Creating new tokens\n\nTo define a token, simply invoke `morgan.token()` with the name and a callback function.\nThis callback function is expected to return a string value. The value returned is then\navailable as \":type\" in this case:\n\n<!-- eslint-disable no-undef -->\n\n```js\nmorgan.token('type', function (req, res) { return req.headers['content-type'] })\n```\n\nCalling `morgan.token()` using the same name as an existing token will overwrite that\ntoken definition.\n\nThe token function is expected to be called with the arguments `req` and `res`, representing\nthe HTTP request and HTTP response. Additionally, the token can accept further arguments of\nit's choosing to customize behavior.\n\n##### :date[format]\n\nThe current date and time in UTC. The available formats are:\n\n  - `clf` for the common log format (`\"10/Oct/2000:13:55:36 +0000\"`)\n  - `iso` for the common ISO 8601 date time format (`2000-10-10T13:55:36.000Z`)\n  - `web` for the common RFC 1123 date time format (`Tue, 10 Oct 2000 13:55:36 GMT`)\n\nIf no format is given, then the default is `web`.\n\n##### :http-version\n\nThe HTTP version of the request.\n\n##### :method\n\nThe HTTP method of the request.\n\n##### :referrer\n\nThe Referrer header of the request. This will use the standard mis-spelled Referer header if exists, otherwise Referrer.\n\n##### :remote-addr\n\nThe remote address of the request. This will use `req.ip`, otherwise the standard `req.connection.remoteAddress` value (socket address).\n\n##### :remote-user\n\nThe user authenticated as part of Basic auth for the request.\n\n##### :req[header]\n\nThe given `header` of the request. If the header is not present, the\nvalue will be displayed as `\"-\"` in the log.\n\n##### :res[header]\n\nThe given `header` of the response. If the header is not present, the\nvalue will be displayed as `\"-\"` in the log.\n\n##### :response-time[digits]\n\nThe time between the request coming into `morgan` and when the response\nheaders are written, in milliseconds.\n\nThe `digits` argument is a number that specifies the number of digits to\ninclude on the number, defaulting to `3`, which provides microsecond precision.\n\n##### :status\n\nThe status code of the response.\n\nIf the request/response cycle completes before a response was sent to the\nclient (for example, the TCP socket closed prematurely by a client aborting\nthe request), then the status will be empty (displayed as `\"-\"` in the log).\n\n##### :total-time[digits]\n\nThe time between the request coming into `morgan` and when the response\nhas finished being written out to the connection, in milliseconds.\n\nThe `digits` argument is a number that specifies the number of digits to\ninclude on the number, defaulting to `3`, which provides microsecond precision.\n\n##### :url\n\nThe URL of the request. This will use `req.originalUrl` if exists, otherwise `req.url`.\n\n##### :user-agent\n\nThe contents of the User-Agent header of the request.\n\n### morgan.compile(format)\n\nCompile a format string into a `format` function for use by `morgan`. A format string\nis a string that represents a single log line and can utilize token syntax.\nTokens are references by `:token-name`. If tokens accept arguments, they can\nbe passed using `[]`, for example: `:token-name[pretty]` would pass the string\n`'pretty'` as an argument to the token `token-name`.\n\nThe function returned from `morgan.compile` takes three arguments `tokens`, `req`, and\n`res`, where `tokens` is object with all defined tokens, `req` is the HTTP request and\n`res` is the HTTP response. The function will return a string that will be the log line,\nor `undefined` / `null` to skip logging.\n\nNormally formats are defined using `morgan.format(name, format)`, but for certain\nadvanced uses, this compile function is directly available.\n\n## Examples\n\n### express/connect\n\nSample app that will log all request in the Apache combined format to STDOUT\n\n```js\nvar express = require('express')\nvar morgan = require('morgan')\n\nvar app = express()\n\napp.use(morgan('combined'))\n\napp.get('/', function (req, res) {\n  res.send('hello, world!')\n})\n```\n\n### vanilla http server\n\nSample app that will log all request in the Apache combined format to STDOUT\n\n```js\nvar finalhandler = require('finalhandler')\nvar http = require('http')\nvar morgan = require('morgan')\n\n// create \"middleware\"\nvar logger = morgan('combined')\n\nhttp.createServer(function (req, res) {\n  var done = finalhandler(req, res)\n  logger(req, res, function (err) {\n    if (err) return done(err)\n\n    // respond to request\n    res.setHeader('content-type', 'text/plain')\n    res.end('hello, world!')\n  })\n})\n```\n\n### write logs to a file\n\n#### single file\n\nSample app that will log all requests in the Apache combined format to the file\n`access.log`.\n\n```js\nvar express = require('express')\nvar fs = require('fs')\nvar morgan = require('morgan')\nvar path = require('path')\n\nvar app = express()\n\n// create a write stream (in append mode)\nvar accessLogStream = fs.createWriteStream(path.join(__dirname, 'access.log'), { flags: 'a' })\n\n// setup the logger\napp.use(morgan('combined', { stream: accessLogStream }))\n\napp.get('/', function (req, res) {\n  res.send('hello, world!')\n})\n```\n\n#### log file rotation\n\nSample app that will log all requests in the Apache combined format to one log\nfile per day in the `log/` directory using the\n[rotating-file-stream module](https://www.npmjs.com/package/rotating-file-stream).\n\n```js\nvar express = require('express')\nvar morgan = require('morgan')\nvar path = require('path')\nvar rfs = require('rotating-file-stream') // version 2.x\n\nvar app = express()\n\n// create a rotating write stream\nvar accessLogStream = rfs.createStream('access.log', {\n  interval: '1d', // rotate daily\n  path: path.join(__dirname, 'log')\n})\n\n// setup the logger\napp.use(morgan('combined', { stream: accessLogStream }))\n\napp.get('/', function (req, res) {\n  res.send('hello, world!')\n})\n```\n\n### split / dual logging\n\nThe `morgan` middleware can be used as many times as needed, enabling\ncombinations like:\n\n  * Log entry on request and one on response\n  * Log all requests to file, but errors to console\n  * ... and more!\n\nSample app that will log all requests to a file using Apache format, but\nerror responses are logged to the console:\n\n```js\nvar express = require('express')\nvar fs = require('fs')\nvar morgan = require('morgan')\nvar path = require('path')\n\nvar app = express()\n\n// log only 4xx and 5xx responses to console\napp.use(morgan('dev', {\n  skip: function (req, res) { return res.statusCode < 400 }\n}))\n\n// log all requests to access.log\napp.use(morgan('common', {\n  stream: fs.createWriteStream(path.join(__dirname, 'access.log'), { flags: 'a' })\n}))\n\napp.get('/', function (req, res) {\n  res.send('hello, world!')\n})\n```\n\n### use custom token formats\n\nSample app that will use custom token formats. This adds an ID to all requests and displays it using the `:id` token.\n\n```js\nvar express = require('express')\nvar morgan = require('morgan')\nvar uuid = require('node-uuid')\n\nmorgan.token('id', function getId (req) {\n  return req.id\n})\n\nvar app = express()\n\napp.use(assignId)\napp.use(morgan(':id :method :url :response-time'))\n\napp.get('/', function (req, res) {\n  res.send('hello, world!')\n})\n\nfunction assignId (req, res, next) {\n  req.id = uuid.v4()\n  next()\n}\n```\n\n## License\n\n[MIT](LICENSE)\n\n[ci-image]: https://badgen.net/github/checks/expressjs/morgan/master?label=ci\n[ci-url]: https://github.com/expressjs/morgan/actions/workflows/ci.yml\n[coveralls-image]: https://badgen.net/coveralls/c/github/expressjs/morgan/master\n[coveralls-url]: https://coveralls.io/r/expressjs/morgan?branch=master\n[npm-downloads-image]: https://badgen.net/npm/dm/morgan\n[npm-url]: https://npmjs.org/package/morgan\n[npm-version-image]: https://badgen.net/npm/v/morgan\n","_attachments":{},"homepage":"https://github.com/expressjs/morgan#readme","bugs":{"url":"https://github.com/expressjs/morgan/issues"},"license":"MIT"}