[{"data":1,"prerenderedAt":647},["ShallowReactive",2],{"navigation_docs":3,"-getting-started-installation":47,"-getting-started-installation-surround":642},[4,23,37],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":22},"Getting Started","i-lucide-rocket","/getting-started","1.getting-started",[10,14,18],{"title":11,"path":12,"stem":13},"Introduction","/getting-started/introduction","1.getting-started/1.introduction",{"title":15,"path":16,"stem":17},"Installation","/getting-started/installation","1.getting-started/2.installation",{"title":19,"path":20,"stem":21},"Quick Start","/getting-started/quick-start","1.getting-started/3.quick-start",false,{"title":24,"icon":25,"path":26,"stem":27,"children":28,"page":22},"Core Concepts","i-lucide-book-open","/core-concepts","2.core-concepts",[29,33],{"title":30,"path":31,"stem":32},"Wide Events","/core-concepts/wide-events","2.core-concepts/1.wide-events",{"title":34,"path":35,"stem":36},"Structured Errors","/core-concepts/structured-errors","2.core-concepts/2.structured-errors",{"title":38,"icon":39,"path":40,"stem":41,"children":42,"page":22},"Extras","i-lucide-puzzle","/extras","3.extras",[43],{"title":44,"path":45,"stem":46},"Agent Skills","/extras/agent-skills","3.extras/1.agent-skills",{"id":48,"title":15,"body":49,"description":636,"extension":637,"links":638,"meta":639,"navigation":386,"path":16,"seo":640,"stem":17,"__hash__":641},"docs/1.getting-started/2.installation.md",{"type":50,"value":51,"toc":629},"minimark",[52,56,61,64,136,139,279,286,290,293,338,342,345,589,599,603,606,611,615,625],[53,54,55],"p",{},"evlog supports multiple environments: Nuxt, Nitro, and standalone TypeScript.",[57,58,60],"h2",{"id":59},"nuxt","Nuxt",[53,62,63],{},"Add evlog as a Nuxt module:",[65,66,67,93,108,122],"code-group",{},[68,69,75],"pre",{"className":70,"code":71,"filename":72,"language":73,"meta":74,"style":74},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","pnpm add evlog\n","pnpm","bash","",[76,77,78],"code",{"__ignoreMap":74},[79,80,83,86,90],"span",{"class":81,"line":82},"line",1,[79,84,72],{"class":85},"sBMFI",[79,87,89],{"class":88},"sfazB"," add",[79,91,92],{"class":88}," evlog\n",[68,94,97],{"className":70,"code":95,"filename":96,"language":73,"meta":74,"style":74},"npm install evlog\n","npm",[76,98,99],{"__ignoreMap":74},[79,100,101,103,106],{"class":81,"line":82},[79,102,96],{"class":85},[79,104,105],{"class":88}," install",[79,107,92],{"class":88},[68,109,112],{"className":70,"code":110,"filename":111,"language":73,"meta":74,"style":74},"yarn add evlog\n","yarn",[76,113,114],{"__ignoreMap":74},[79,115,116,118,120],{"class":81,"line":82},[79,117,111],{"class":85},[79,119,89],{"class":88},[79,121,92],{"class":88},[68,123,126],{"className":70,"code":124,"filename":125,"language":73,"meta":74,"style":74},"bun add evlog\n","bun",[76,127,128],{"__ignoreMap":74},[79,129,130,132,134],{"class":81,"line":82},[79,131,125],{"class":85},[79,133,89],{"class":88},[79,135,92],{"class":88},[53,137,138],{},"Then add it to your Nuxt config:",[68,140,145],{"className":141,"code":142,"filename":143,"language":144,"meta":74,"style":74},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","export default defineNuxtConfig({\n  modules: ['evlog/nuxt'],\n  evlog: {\n    env: {\n      service: 'my-app',\n      environment: process.env.NODE_ENV,\n    },\n  },\n})\n","nuxt.config.ts","typescript",[76,146,147,168,195,206,216,234,258,264,270],{"__ignoreMap":74},[79,148,149,153,156,160,164],{"class":81,"line":82},[79,150,152],{"class":151},"s7zQu","export",[79,154,155],{"class":151}," default",[79,157,159],{"class":158},"s2Zo4"," defineNuxtConfig",[79,161,163],{"class":162},"sTEyZ","(",[79,165,167],{"class":166},"sMK4o","{\n",[79,169,171,175,178,181,184,187,189,192],{"class":81,"line":170},2,[79,172,174],{"class":173},"swJcz","  modules",[79,176,177],{"class":166},":",[79,179,180],{"class":162}," [",[79,182,183],{"class":166},"'",[79,185,186],{"class":88},"evlog/nuxt",[79,188,183],{"class":166},[79,190,191],{"class":162},"]",[79,193,194],{"class":166},",\n",[79,196,198,201,203],{"class":81,"line":197},3,[79,199,200],{"class":173},"  evlog",[79,202,177],{"class":166},[79,204,205],{"class":166}," {\n",[79,207,209,212,214],{"class":81,"line":208},4,[79,210,211],{"class":173},"    env",[79,213,177],{"class":166},[79,215,205],{"class":166},[79,217,219,222,224,227,230,232],{"class":81,"line":218},5,[79,220,221],{"class":173},"      service",[79,223,177],{"class":166},[79,225,226],{"class":166}," '",[79,228,229],{"class":88},"my-app",[79,231,183],{"class":166},[79,233,194],{"class":166},[79,235,237,240,242,245,248,251,253,256],{"class":81,"line":236},6,[79,238,239],{"class":173},"      environment",[79,241,177],{"class":166},[79,243,244],{"class":162}," process",[79,246,247],{"class":166},".",[79,249,250],{"class":162},"env",[79,252,247],{"class":166},[79,254,255],{"class":162},"NODE_ENV",[79,257,194],{"class":166},[79,259,261],{"class":81,"line":260},7,[79,262,263],{"class":166},"    },\n",[79,265,267],{"class":81,"line":266},8,[79,268,269],{"class":166},"  },\n",[79,271,273,276],{"class":81,"line":272},9,[79,274,275],{"class":166},"}",[79,277,278],{"class":162},")\n",[53,280,281,282,285],{},"That's it! You can now use ",[76,283,284],{},"useLogger(event)"," in any API route.",[57,287,289],{"id":288},"nitro","Nitro",[53,291,292],{},"For standalone Nitro projects (without Nuxt), add evlog as a plugin:",[68,294,297],{"className":141,"code":295,"filename":296,"language":144,"meta":74,"style":74},"export default defineNitroConfig({\n  plugins: ['evlog/nitro'],\n})\n","nitro.config.ts",[76,298,299,312,332],{"__ignoreMap":74},[79,300,301,303,305,308,310],{"class":81,"line":82},[79,302,152],{"class":151},[79,304,155],{"class":151},[79,306,307],{"class":158}," defineNitroConfig",[79,309,163],{"class":162},[79,311,167],{"class":166},[79,313,314,317,319,321,323,326,328,330],{"class":81,"line":170},[79,315,316],{"class":173},"  plugins",[79,318,177],{"class":166},[79,320,180],{"class":162},[79,322,183],{"class":166},[79,324,325],{"class":88},"evlog/nitro",[79,327,183],{"class":166},[79,329,191],{"class":162},[79,331,194],{"class":166},[79,333,334,336],{"class":81,"line":197},[79,335,275],{"class":166},[79,337,278],{"class":162},[57,339,341],{"id":340},"standalone-typescript","Standalone TypeScript",[53,343,344],{},"For scripts, workers, CLI tools, or any TypeScript project:",[68,346,349],{"className":141,"code":347,"filename":348,"language":144,"meta":74,"style":74},"import { initLogger, createRequestLogger } from 'evlog'\n\n// Initialize once at startup\ninitLogger({\n  env: {\n    service: 'my-worker',\n    environment: 'production',\n  },\n})\n\n// Create a logger for each operation\nconst log = createRequestLogger({ jobId: job.id })\nlog.set({ source: job.source, target: job.target })\nlog.set({ recordsSynced: 150 })\nlog.emit() // Manual emit required in standalone mode\n","scripts/sync-job.ts",[76,350,351,382,388,394,403,412,428,444,448,454,459,465,502,547,573],{"__ignoreMap":74},[79,352,353,356,359,362,365,368,371,374,376,379],{"class":81,"line":82},[79,354,355],{"class":151},"import",[79,357,358],{"class":166}," {",[79,360,361],{"class":162}," initLogger",[79,363,364],{"class":166},",",[79,366,367],{"class":162}," createRequestLogger",[79,369,370],{"class":166}," }",[79,372,373],{"class":151}," from",[79,375,226],{"class":166},[79,377,378],{"class":88},"evlog",[79,380,381],{"class":166},"'\n",[79,383,384],{"class":81,"line":170},[79,385,387],{"emptyLinePlaceholder":386},true,"\n",[79,389,390],{"class":81,"line":197},[79,391,393],{"class":392},"sHwdD","// Initialize once at startup\n",[79,395,396,399,401],{"class":81,"line":208},[79,397,398],{"class":158},"initLogger",[79,400,163],{"class":162},[79,402,167],{"class":166},[79,404,405,408,410],{"class":81,"line":218},[79,406,407],{"class":173},"  env",[79,409,177],{"class":166},[79,411,205],{"class":166},[79,413,414,417,419,421,424,426],{"class":81,"line":236},[79,415,416],{"class":173},"    service",[79,418,177],{"class":166},[79,420,226],{"class":166},[79,422,423],{"class":88},"my-worker",[79,425,183],{"class":166},[79,427,194],{"class":166},[79,429,430,433,435,437,440,442],{"class":81,"line":260},[79,431,432],{"class":173},"    environment",[79,434,177],{"class":166},[79,436,226],{"class":166},[79,438,439],{"class":88},"production",[79,441,183],{"class":166},[79,443,194],{"class":166},[79,445,446],{"class":81,"line":266},[79,447,269],{"class":166},[79,449,450,452],{"class":81,"line":272},[79,451,275],{"class":166},[79,453,278],{"class":162},[79,455,457],{"class":81,"line":456},10,[79,458,387],{"emptyLinePlaceholder":386},[79,460,462],{"class":81,"line":461},11,[79,463,464],{"class":392},"// Create a logger for each operation\n",[79,466,468,472,475,478,480,482,485,488,490,493,495,498,500],{"class":81,"line":467},12,[79,469,471],{"class":470},"spNyl","const",[79,473,474],{"class":162}," log ",[79,476,477],{"class":166},"=",[79,479,367],{"class":158},[79,481,163],{"class":162},[79,483,484],{"class":166},"{",[79,486,487],{"class":173}," jobId",[79,489,177],{"class":166},[79,491,492],{"class":162}," job",[79,494,247],{"class":166},[79,496,497],{"class":162},"id ",[79,499,275],{"class":166},[79,501,278],{"class":162},[79,503,505,508,510,513,515,517,520,522,524,526,529,531,534,536,538,540,543,545],{"class":81,"line":504},13,[79,506,507],{"class":162},"log",[79,509,247],{"class":166},[79,511,512],{"class":158},"set",[79,514,163],{"class":162},[79,516,484],{"class":166},[79,518,519],{"class":173}," source",[79,521,177],{"class":166},[79,523,492],{"class":162},[79,525,247],{"class":166},[79,527,528],{"class":162},"source",[79,530,364],{"class":166},[79,532,533],{"class":173}," target",[79,535,177],{"class":166},[79,537,492],{"class":162},[79,539,247],{"class":166},[79,541,542],{"class":162},"target ",[79,544,275],{"class":166},[79,546,278],{"class":162},[79,548,550,552,554,556,558,560,563,565,569,571],{"class":81,"line":549},14,[79,551,507],{"class":162},[79,553,247],{"class":166},[79,555,512],{"class":158},[79,557,163],{"class":162},[79,559,484],{"class":166},[79,561,562],{"class":173}," recordsSynced",[79,564,177],{"class":166},[79,566,568],{"class":567},"sbssI"," 150",[79,570,370],{"class":166},[79,572,278],{"class":162},[79,574,576,578,580,583,586],{"class":81,"line":575},15,[79,577,507],{"class":162},[79,579,247],{"class":166},[79,581,582],{"class":158},"emit",[79,584,585],{"class":162},"() ",[79,587,588],{"class":392},"// Manual emit required in standalone mode\n",[590,591,594,595,598],"callout",{"color":592,"icon":593},"info","i-lucide-info","In standalone mode, you must call ",[76,596,597],{},"log.emit()"," manually. In Nuxt/Nitro, this happens automatically at request end.",[57,600,602],{"id":601},"typescript-configuration","TypeScript Configuration",[53,604,605],{},"evlog is written in TypeScript and ships with full type definitions. No additional configuration is required.",[590,607,610],{"color":608,"icon":609},"success","i-lucide-check","evlog requires TypeScript 5.0 or higher for optimal type inference.",[57,612,614],{"id":613},"next-steps","Next Steps",[616,617,618],"ul",{},[619,620,621,624],"li",{},[622,623,19],"a",{"href":20}," - Learn the core concepts and start using evlog",[626,627,628],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":74,"searchDepth":170,"depth":170,"links":630},[631,632,633,634,635],{"id":59,"depth":170,"text":60},{"id":288,"depth":170,"text":289},{"id":340,"depth":170,"text":341},{"id":601,"depth":170,"text":602},{"id":613,"depth":170,"text":614},"Install evlog in your Nuxt, Nitro, or standalone TypeScript project.","md",null,{},{"title":15,"description":636},"REOG_3PD3iM6UK8r6eVJH_KLpZPAd-WmnVnkSL_lXDU",[643,645],{"title":11,"path":12,"stem":13,"description":644,"children":-1},"A TypeScript logging library focused on wide events and structured error handling.",{"title":19,"path":20,"stem":21,"description":646,"children":-1},"Get up and running with evlog in minutes.",1769406470305]