[{"data":1,"prerenderedAt":1292},["ShallowReactive",2],{"navigation_docs_hu":3,"-hu-logx-overview":449,"-hu-logx-overview-surround":1287},[4,45,120,158,174,204,234,260,272,288,308,327,340,357,374,387,399,426],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":44},"Kezdő lépések","i-lucide-rocket","\u002Fhu\u002Fgetting-started","hu\u002F01.getting-started",[10,15,20,25,30,35,40],{"title":11,"path":12,"stem":13,"icon":14},"Bevezetés","\u002Fhu\u002Fgetting-started\u002Fintroduction","hu\u002F01.getting-started\u002F1.introduction","i-lucide-house",{"title":16,"path":17,"stem":18,"icon":19},"Telepítés","\u002Fhu\u002Fgetting-started\u002Finstallation","hu\u002F01.getting-started\u002F2.installation","i-lucide-download",{"title":21,"path":22,"stem":23,"icon":24},"Az első modulod","\u002Fhu\u002Fgetting-started\u002Ffirst-module","hu\u002F01.getting-started\u002F3.first-module","i-lucide-package-plus",{"title":26,"path":27,"stem":28,"icon":29},"Projektstruktúra","\u002Fhu\u002Fgetting-started\u002Fproject-structure","hu\u002F01.getting-started\u002F4.project-structure","i-lucide-folder-tree",{"title":31,"path":32,"stem":33,"icon":34},"A shop mintaalkalmazás","\u002Fhu\u002Fgetting-started\u002Fsample-app","hu\u002F01.getting-started\u002F5.sample-app","i-lucide-shopping-cart",{"title":36,"path":37,"stem":38,"icon":39},"Laravelből érkezőknek","\u002Fhu\u002Fgetting-started\u002Fcoming-from-laravel","hu\u002F01.getting-started\u002F6.coming-from-laravel","i-lucide-arrow-right-left",{"title":41,"path":42,"stem":43,"icon":39},"Symfonyból érkezőknek","\u002Fhu\u002Fgetting-started\u002Fcoming-from-symfony","hu\u002F01.getting-started\u002F7.coming-from-symfony",false,{"title":46,"icon":47,"path":48,"stem":49,"children":50,"page":44},"CLI referencia","i-lucide-terminal","\u002Fhu\u002Fcli","hu\u002F02.cli",[51,55,60,65,70,75,80,85,90,95,100,105,110,115],{"title":52,"path":53,"stem":54,"icon":47},"Áttekintés","\u002Fhu\u002Fcli\u002Foverview","hu\u002F02.cli\u002F1.overview",{"title":56,"path":57,"stem":58,"icon":59},"add compose \u002F add docker","\u002Fhu\u002Fcli\u002Fadd-compose","hu\u002F02.cli\u002F10.add-compose","i-lucide-container",{"title":61,"path":62,"stem":63,"icon":64},"add mail","\u002Fhu\u002Fcli\u002Fadd-mail","hu\u002F02.cli\u002F11.add-mail","i-lucide-mail-plus",{"title":66,"path":67,"stem":68,"icon":69},"add notification","\u002Fhu\u002Fcli\u002Fadd-notification","hu\u002F02.cli\u002F12.add-notification","i-lucide-bell-plus",{"title":71,"path":72,"stem":73,"icon":74},"add realtime","\u002Fhu\u002Fcli\u002Fadd-realtime","hu\u002F02.cli\u002F13.add-realtime","i-lucide-radio-tower",{"title":76,"path":77,"stem":78,"icon":79},"add seeder","\u002Fhu\u002Fcli\u002Fadd-seeder","hu\u002F02.cli\u002F14.add-seeder","i-lucide-sprout",{"title":81,"path":82,"stem":83,"icon":84},"new project","\u002Fhu\u002Fcli\u002Fnew-project","hu\u002F02.cli\u002F2.new-project","i-lucide-folder-plus",{"title":86,"path":87,"stem":88,"icon":89},"new module","\u002Fhu\u002Fcli\u002Fnew-module","hu\u002F02.cli\u002F3.new-module","i-lucide-blocks",{"title":91,"path":92,"stem":93,"icon":94},"add surface","\u002Fhu\u002Fcli\u002Fadd-surface","hu\u002F02.cli\u002F4.add-surface","i-lucide-layers-2",{"title":96,"path":97,"stem":98,"icon":99},"add domain","\u002Fhu\u002Fcli\u002Fadd-domain","hu\u002F02.cli\u002F5.add-domain","i-lucide-box",{"title":101,"path":102,"stem":103,"icon":104},"add handler","\u002Fhu\u002Fcli\u002Fadd-handler","hu\u002F02.cli\u002F6.add-handler","i-lucide-webhook",{"title":106,"path":107,"stem":108,"icon":109},"new migration","\u002Fhu\u002Fcli\u002Fnew-migration","hu\u002F02.cli\u002F7.new-migration","i-lucide-file-plus",{"title":111,"path":112,"stem":113,"icon":114},"worker generátorok","\u002Fhu\u002Fcli\u002Fworker-generators","hu\u002F02.cli\u002F8.worker-generators","i-lucide-cog",{"title":116,"path":117,"stem":118,"icon":119},"add db","\u002Fhu\u002Fcli\u002Fadd-db","hu\u002F02.cli\u002F9.add-db","i-lucide-database-zap",{"title":121,"icon":99,"path":122,"stem":123,"children":124,"page":44},"A framework","\u002Fhu\u002Fframework","hu\u002F03.framework",[125,129,134,139,143,148,153],{"title":126,"path":127,"stem":128,"icon":99},"A framework áttekintése","\u002Fhu\u002Fframework\u002Foverview","hu\u002F03.framework\u002F1.overview",{"title":130,"path":131,"stem":132,"icon":133},"Alkalmazás-életciklus","\u002Fhu\u002Fframework\u002Fapp","hu\u002F03.framework\u002F2.app","i-lucide-power",{"title":135,"path":136,"stem":137,"icon":138},"Szerver","\u002Fhu\u002Fframework\u002Fserver","hu\u002F03.framework\u002F3.server","i-lucide-server",{"title":140,"path":141,"stem":142,"icon":114},"Worker","\u002Fhu\u002Fframework\u002Fworker","hu\u002F03.framework\u002F4.worker",{"title":144,"path":145,"stem":146,"icon":147},"Realtime","\u002Fhu\u002Fframework\u002Frealtime","hu\u002F03.framework\u002F5.realtime","i-lucide-radio",{"title":149,"path":150,"stem":151,"icon":152},"Migrációk","\u002Fhu\u002Fframework\u002Fmigrations","hu\u002F03.framework\u002F6.migrations","i-lucide-file-stack",{"title":154,"path":155,"stem":156,"icon":157},"Social login","\u002Fhu\u002Fframework\u002Fsocial-login","hu\u002F03.framework\u002F7.social-login","i-lucide-log-in",{"title":159,"icon":160,"path":161,"stem":162,"children":163,"page":44},"Referencia","i-lucide-book-open","\u002Fhu\u002Freference","hu\u002F04.reference",[164,169],{"title":165,"path":166,"stem":167,"icon":168},"Konfiguráció","\u002Fhu\u002Freference\u002Fconfiguration","hu\u002F04.reference\u002F1.configuration","i-lucide-settings",{"title":170,"path":171,"stem":172,"icon":173},"Külső függőségek","\u002Fhu\u002Freference\u002Fdependencies","hu\u002F04.reference\u002F2.dependencies","i-lucide-package",{"title":175,"icon":176,"path":177,"stem":178,"children":179,"page":44},"Koncepciók","i-lucide-lightbulb","\u002Fhu\u002Fconcepts","hu\u002F05.concepts",[180,185,190,194,199],{"title":181,"path":182,"stem":183,"icon":184},"Architektúra","\u002Fhu\u002Fconcepts\u002Farchitecture","hu\u002F05.concepts\u002F1.architecture","i-lucide-layers",{"title":186,"path":187,"stem":188,"icon":189},"Hibamodell","\u002Fhu\u002Fconcepts\u002Ferror-model","hu\u002F05.concepts\u002F2.error-model","i-lucide-shield-alert",{"title":165,"path":191,"stem":192,"icon":193},"\u002Fhu\u002Fconcepts\u002Fconfiguration","hu\u002F05.concepts\u002F3.configuration","i-lucide-settings-2",{"title":195,"path":196,"stem":197,"icon":198},"Codegen pipeline","\u002Fhu\u002Fconcepts\u002Fcodegen-pipeline","hu\u002F05.concepts\u002F4.codegen-pipeline","i-lucide-file-json",{"title":200,"path":201,"stem":202,"icon":203},"Design patternek","\u002Fhu\u002Fconcepts\u002Fdesign-patterns","hu\u002F05.concepts\u002F5.design-patterns","i-lucide-puzzle",{"title":205,"icon":206,"path":207,"stem":208,"children":209,"page":44},"auth","i-lucide-shield-check","\u002Fhu\u002Fauth","hu\u002F06.auth",[210,215,220,225,230],{"title":211,"path":212,"stem":213,"icon":214},"Autentikáció","\u002Fhu\u002Fauth\u002Foverview","hu\u002F06.auth\u002F1.overview","i-lucide-key-round",{"title":216,"path":217,"stem":218,"icon":219},"RBAC","\u002Fhu\u002Fauth\u002Frbac","hu\u002F06.auth\u002F2.rbac","i-lucide-users",{"title":221,"path":222,"stem":223,"icon":224},"Policy-k","\u002Fhu\u002Fauth\u002Fpolicy","hu\u002F06.auth\u002F3.policy","i-lucide-gavel",{"title":226,"path":227,"stem":228,"icon":229},"Az auth önálló használata","\u002Fhu\u002Fauth\u002Fstandalone","hu\u002F06.auth\u002F4.standalone","i-lucide-plug",{"title":231,"path":232,"stem":233,"icon":157},"Social login goth-tal, önállóan","\u002Fhu\u002Fauth\u002Fsocial-standalone","hu\u002F06.auth\u002F5.social-standalone",{"title":235,"icon":236,"path":237,"stem":238,"children":239,"page":44},"dbx","i-lucide-database","\u002Fhu\u002Fdbx","hu\u002F07.dbx",[240,243,247,251,256],{"title":52,"path":241,"stem":242,"icon":236},"\u002Fhu\u002Fdbx\u002Foverview","hu\u002F07.dbx\u002F1.overview",{"title":244,"path":245,"stem":246,"icon":229},"pgx","\u002Fhu\u002Fdbx\u002Fpg","hu\u002F07.dbx\u002F2.pg",{"title":248,"path":249,"stem":250,"icon":184},"bun","\u002Fhu\u002Fdbx\u002Fbunx","hu\u002F07.dbx\u002F3.bunx",{"title":252,"path":253,"stem":254,"icon":255},"Tranzakciók","\u002Fhu\u002Fdbx\u002Ftransactions","hu\u002F07.dbx\u002F4.transactions","i-lucide-git-merge",{"title":257,"path":258,"stem":259,"icon":79},"Seederek","\u002Fhu\u002Fdbx\u002Fseed","hu\u002F07.dbx\u002F5.seed",{"title":261,"icon":193,"path":262,"stem":263,"children":264,"page":44},"envconf","\u002Fhu\u002Fenvconf","hu\u002F08.envconf",[265,268],{"title":52,"path":266,"stem":267,"icon":193},"\u002Fhu\u002Fenvconf\u002Foverview","hu\u002F08.envconf\u002F1.overview",{"title":269,"path":270,"stem":271,"icon":193},"Receptek","\u002Fhu\u002Fenvconf\u002Frecipes","hu\u002F08.envconf\u002F2.recipes",{"title":273,"icon":189,"path":274,"stem":275,"children":276,"page":44},"errs","\u002Fhu\u002Ferrs","hu\u002F09.errs",[277,280,284],{"title":52,"path":278,"stem":279,"icon":189},"\u002Fhu\u002Ferrs\u002Foverview","hu\u002F09.errs\u002F1.overview",{"title":281,"path":282,"stem":283,"icon":189},"API","\u002Fhu\u002Ferrs\u002Fapi","hu\u002F09.errs\u002F2.api",{"title":285,"path":286,"stem":287,"icon":189},"Integráció","\u002Fhu\u002Ferrs\u002Fintegration","hu\u002F09.errs\u002F3.integration",{"title":289,"icon":290,"path":291,"stem":292,"children":293,"page":44},"events","i-lucide-workflow","\u002Fhu\u002Fevents","hu\u002F10.events",[294,298,303],{"title":295,"path":296,"stem":297,"icon":147},"Események","\u002Fhu\u002Fevents\u002Foverview","hu\u002F10.events\u002F1.overview",{"title":299,"path":300,"stem":301,"icon":302},"Outbox","\u002Fhu\u002Fevents\u002Foutbox","hu\u002F10.events\u002F2.outbox","i-lucide-inbox",{"title":304,"path":305,"stem":306,"icon":307},"Ütemezés","\u002Fhu\u002Fevents\u002Fscheduler","hu\u002F10.events\u002F3.scheduler","i-lucide-calendar-clock",{"title":309,"icon":310,"path":311,"stem":312,"children":313,"page":44},"httperr","i-lucide-globe","\u002Fhu\u002Fhttperr","hu\u002F11.httperr",[314,317,322],{"title":52,"path":315,"stem":316,"icon":310},"\u002Fhu\u002Fhttperr\u002Foverview","hu\u002F11.httperr\u002F1.overview",{"title":318,"path":319,"stem":320,"icon":321},"Hibaválaszok","\u002Fhu\u002Fhttperr\u002Ferror-responses","hu\u002F11.httperr\u002F2.error-responses","i-lucide-octagon-alert",{"title":323,"path":324,"stem":325,"icon":326},"Validáció","\u002Fhu\u002Fhttperr\u002Fvalidation","hu\u002F11.httperr\u002F3.validation","i-lucide-badge-check",{"title":328,"icon":329,"path":330,"stem":331,"children":332,"page":44},"logx","i-lucide-scroll-text","\u002Fhu\u002Flogx","hu\u002F12.logx",[333,336],{"title":52,"path":334,"stem":335,"icon":329},"\u002Fhu\u002Flogx\u002Foverview","hu\u002F12.logx\u002F1.overview",{"title":337,"path":338,"stem":339,"icon":47},"Monolog-formázó","\u002Fhu\u002Flogx\u002Fmonolog","hu\u002F12.logx\u002F2.monolog",{"title":341,"icon":342,"path":343,"stem":344,"children":345,"page":44},"mail","i-lucide-mail","\u002Fhu\u002Fmail","hu\u002F13.mail",[346,349,353],{"title":52,"path":347,"stem":348,"icon":342},"\u002Fhu\u002Fmail\u002Foverview","hu\u002F13.mail\u002F1.overview",{"title":350,"path":351,"stem":352,"icon":342},"SMTP","\u002Fhu\u002Fmail\u002Fsmtp","hu\u002F13.mail\u002F2.smtp",{"title":354,"path":355,"stem":356,"icon":342},"MJML","\u002Fhu\u002Fmail\u002Fmjml","hu\u002F13.mail\u002F3.mjml",{"title":358,"icon":359,"path":360,"stem":361,"children":362,"page":44},"notify","i-lucide-bell","\u002Fhu\u002Fnotify","hu\u002F14.notify",[363,366,370],{"title":52,"path":364,"stem":365,"icon":359},"\u002Fhu\u002Fnotify\u002Foverview","hu\u002F14.notify\u002F1.overview",{"title":367,"path":368,"stem":369,"icon":359},"Database csatorna","\u002Fhu\u002Fnotify\u002Fdatabase","hu\u002F14.notify\u002F2.database",{"title":371,"path":372,"stem":373,"icon":359},"Broadcast csatorna","\u002Fhu\u002Fnotify\u002Fbroadcast","hu\u002F14.notify\u002F3.broadcast",{"title":375,"icon":376,"path":377,"stem":378,"children":379,"page":44},"paginate","i-lucide-list-ordered","\u002Fhu\u002Fpaginate","hu\u002F15.paginate",[380,383],{"title":52,"path":381,"stem":382,"icon":376},"\u002Fhu\u002Fpaginate\u002Foverview","hu\u002F15.paginate\u002F1.overview",{"title":384,"path":385,"stem":386,"icon":39},"Cursor-lapozás","\u002Fhu\u002Fpaginate\u002Fcursor","hu\u002F15.paginate\u002F2.cursor",{"title":388,"icon":184,"path":389,"stem":390,"children":391,"page":44},"queue","\u002Fhu\u002Fqueue","hu\u002F16.queue",[392,395],{"title":52,"path":393,"stem":394,"icon":376},"\u002Fhu\u002Fqueue\u002Foverview","hu\u002F16.queue\u002F1.overview",{"title":396,"path":397,"stem":398,"icon":184},"Taskok","\u002Fhu\u002Fqueue\u002Ftasks","hu\u002F16.queue\u002F2.tasks",{"title":400,"icon":401,"path":402,"stem":403,"children":404,"page":44},"storage","i-lucide-hard-drive","\u002Fhu\u002Fstorage","hu\u002F17.storage",[405,408,412,416,421],{"title":52,"path":406,"stem":407,"icon":401},"\u002Fhu\u002Fstorage\u002Foverview","hu\u002F17.storage\u002F1.overview",{"title":409,"path":410,"stem":411,"icon":401},"Disk API","\u002Fhu\u002Fstorage\u002Fdisk-api","hu\u002F17.storage\u002F2.disk-api",{"title":413,"path":414,"stem":415,"icon":401},"Memória és helyi lemez","\u002Fhu\u002Fstorage\u002Flocal","hu\u002F17.storage\u002F3.local",{"title":417,"path":418,"stem":419,"icon":420},"S3","\u002Fhu\u002Fstorage\u002Fs3","hu\u002F17.storage\u002F4.s3","i-lucide-cloud",{"title":422,"path":423,"stem":424,"icon":425},"Tesztelés","\u002Fhu\u002Fstorage\u002Ftesting","hu\u002F17.storage\u002F5.testing","i-lucide-flask-conical",{"title":427,"icon":428,"path":429,"stem":430,"children":431,"page":44},"telemetry","i-lucide-activity","\u002Fhu\u002Ftelemetry","hu\u002F18.telemetry",[432,435,439,444],{"title":52,"path":433,"stem":434,"icon":428},"\u002Fhu\u002Ftelemetry\u002Foverview","hu\u002F18.telemetry\u002F1.overview",{"title":436,"path":437,"stem":438,"icon":329},"Logolás","\u002Fhu\u002Ftelemetry\u002Flogging","hu\u002F18.telemetry\u002F2.logging",{"title":440,"path":441,"stem":442,"icon":443},"OpenTelemetry","\u002Fhu\u002Ftelemetry\u002Fopentelemetry","hu\u002F18.telemetry\u002F3.opentelemetry","i-lucide-radar",{"title":445,"path":446,"stem":447,"icon":448},"Sentry","\u002Fhu\u002Ftelemetry\u002Fsentry","hu\u002F18.telemetry\u002F4.sentry","i-lucide-bug",{"id":450,"title":52,"body":451,"description":1280,"extension":1281,"links":1282,"meta":1283,"navigation":1284,"path":334,"seo":1285,"stem":335,"__hash__":1286},"docs_hu\u002Fhu\u002F12.logx\u002F1.overview.md",{"type":452,"value":453,"toc":1273},"minimark",[454,502,520,556,560,589,643,646,659,727,737,741,747,891,903,907,913,1217,1227,1231,1269],[455,456,457,458,461,462,465,466,469,470,473,474,477,478,477,481,484,485,488,489,491,492,495,496,501],"p",{},"A ",[459,460,328],"code",{}," önálló Go modul (",[459,463,464],{},"github.com\u002Fgp-system\u002Flogx",", +",[459,467,468],{},"logx\u002Fmonolog","): egy kis eszközkészlet a default ",[459,471,472],{},"log\u002Fslog"," logger komponálásához. Három kombinátor (",[459,475,476],{},"ConsoleHandler",", ",[459,479,480],{},"LevelFilter",[459,482,483],{},"Fanout",") ad konzolformátum-váltót, minimum-szint kaput és egy Monolog-stílusú, több-handleres stacket, mind sima ",[459,486,487],{},"slog.Handler"," értékként. Fölötte a ",[459,490,468],{}," egy önálló formázó, ami ",[459,493,494],{},"[dátum] channel.SZINT: üzenet {context}"," sorokat rendel, PHP-stílusban, egy ",[497,498,499],"a",{"href":278},[459,500,273],{}," hibából kinyert, teljes útvonalú stack trace-szel.",[455,503,504,505,509,510,512,513,516,517,519],{},"Korábban a ",[497,506,507],{"href":433},[459,508,427],{}," ",[459,511,328],{}," nevű alcsomagjaként élt; azóta önálló modulba költözött, mert egy konzol-logger komponálásának semmi köze az OpenTelemetryhez vagy a Sentry-bekötéshez, és egy programnak, ami csak olvasható konzollogot akar, nem kéne emiatt az OTel SDK-t vagy a sentry-go-t behúznia. A ",[459,514,515],{},"telemetry.Setup"," ugyanúgy használja a ",[459,518,328],{},"-et, mint eddig, csak modul-függőségként, nem alcsomagként: a futásidejű viselkedésen semmi nem változott, csak azon, melyik modulban él a kód.",[455,521,522,523,527,528,530,531,534,535,538,539,542,543,545,546,477,548,477,550,477,552,555],{},"Az egyetlen függősége az ",[497,524,525],{"href":278},[459,526,273],{},", és azt is csak a ",[459,529,468],{}," használja: a formázó az ",[459,532,533],{},"errs.CodeOf","-ot olvassa és az ",[459,536,537],{},"errs.FullFrames","\u002F",[459,540,541],{},"errs.Frame","-en át járja be egy becsomagolt hiba stackjét. Maga a ",[459,544,328],{}," csomag (",[459,547,476],{},[459,549,480],{},[459,551,483],{},[459,553,554],{},"Config",") a standard libraryn túl semmit nem importál.",[557,558,16],"h2",{"id":559},"telepítés",[561,562,567],"pre",{"className":563,"code":564,"language":565,"meta":566,"style":566},"language-sh shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","go get github.com\u002Fgp-system\u002Flogx@main # még nincs taggelt release\n","sh","",[459,568,569],{"__ignoreMap":566},[570,571,574,578,582,585],"span",{"class":572,"line":573},"line",1,[570,575,577],{"class":576},"sBMFI","go",[570,579,581],{"class":580},"sfazB"," get",[570,583,584],{"class":580}," github.com\u002Fgp-system\u002Flogx@main",[570,586,588],{"class":587},"sHwdD"," # még nincs taggelt release\n",[590,591,592,605],"table",{},[593,594,595],"thead",{},[596,597,598,602],"tr",{},[599,600,601],"th",{},"Import-út",[599,603,604],{},"Mit ad hozzá",[606,607,608,630],"tbody",{},[596,609,610,615],{},[611,612,613],"td",{},[459,614,464],{},[611,616,617,618,621,622,477,624,477,626,477,628],{},"a ",[459,619,620],{},"slog","-kompozíciót: ",[459,623,476],{},[459,625,480],{},[459,627,483],{},[459,629,554],{},[596,631,632,637],{},[611,633,634],{},[459,635,636],{},"github.com\u002Fgp-system\u002Flogx\u002Fmonolog",[611,638,639,640,642],{},"a PHP\u002FMonolog-stílusú konzol-formázót, önmagában is sima ",[459,641,487],{},"-ként használható",[557,644,165],{"id":645},"konfiguráció",[455,647,457,648,651,652,509,655,658],{},[459,649,650],{},"logx.Config"," nem hordoz saját env-prefixet: a változók arra vannak szánva, hogy prefix nélkül, a legfelső szinten ágyazódjanak be, bármi is komponálja őket (a frameworkben a ",[459,653,654],{},"telemetry.Config",[459,656,657],{},"Log"," mezőjeként).",[590,660,661,674],{},[593,662,663],{},[596,664,665,668,671],{},[599,666,667],{},"Változó",[599,669,670],{},"Default",[599,672,673],{},"Jelentés",[606,675,676,691,706],{},[596,677,678,683,688],{},[611,679,680],{},[459,681,682],{},"LOG_LEVEL",[611,684,685],{},[459,686,687],{},"INFO",[611,689,690],{},"a logger minimális szintje (a fanout minden handlerére érvényes)",[596,692,693,698,703],{},[611,694,695],{},[459,696,697],{},"LOG_STDOUT",[611,699,700],{},[459,701,702],{},"false",[611,704,705],{},"prod módban is írjon konzolra (JSON); hagyd kikapcsolva, ha a collector a konténer-kimenetet szedi, különben duplán ingesztálsz",[596,707,708,713,720],{},[611,709,710],{},[459,711,712],{},"LOG_FORMAT",[611,714,715,716,719],{},"üres (",[459,717,718],{},"auto",")",[611,721,722,723,726],{},"a konzol-formátum: üresen szöveg dev módban \u002F JSON prodban; ",[459,724,725],{},"monolog"," → Monolog-stílusú sorok, módtól függetlenül",[455,728,729,730,732,733,736],{},"Ismeretlen ",[459,731,712],{}," értékre a ",[459,734,735],{},"Config.Validate()"," hibával áll le, nem csendben esik vissza.",[557,738,740],{"id":739},"a-kompozíció-fanout-és-levelfilter","A kompozíció: Fanout és LevelFilter",[455,742,743,744,746],{},"Három kis ",[459,745,487],{},"-kombinátor a teljes csomag:",[561,748,751],{"className":749,"code":750,"language":577,"meta":566,"style":566},"language-go shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","func ConsoleHandler(w io.Writer, cfg Config, dev bool, channel string) slog.Handler\nfunc Fanout(handlers ...slog.Handler) slog.Handler          \u002F\u002F több handler, egy-egy rekordklón mindnek\nfunc LevelFilter(min slog.Level, next slog.Handler) slog.Handler \u002F\u002F minimum-szint kapu\n",[459,752,753,815,849],{"__ignoreMap":566},[570,754,755,759,763,766,770,773,776,779,782,785,788,790,793,797,799,802,805,807,810,812],{"class":572,"line":573},[570,756,758],{"class":757},"sMK4o","func",[570,760,762],{"class":761},"s2Zo4"," ConsoleHandler",[570,764,765],{"class":757},"(",[570,767,769],{"class":768},"sHdIc","w",[570,771,772],{"class":576}," io",[570,774,775],{"class":757},".",[570,777,778],{"class":576},"Writer",[570,780,781],{"class":757},",",[570,783,784],{"class":768}," cfg",[570,786,787],{"class":576}," Config",[570,789,781],{"class":757},[570,791,792],{"class":768}," dev",[570,794,796],{"class":795},"spNyl"," bool",[570,798,781],{"class":757},[570,800,801],{"class":768}," channel",[570,803,804],{"class":795}," string",[570,806,719],{"class":757},[570,808,809],{"class":576}," slog",[570,811,775],{"class":757},[570,813,814],{"class":576},"Handler\n",[570,816,818,820,823,825,828,831,833,835,838,840,842,844,846],{"class":572,"line":817},2,[570,819,758],{"class":757},[570,821,822],{"class":761}," Fanout",[570,824,765],{"class":757},[570,826,827],{"class":768},"handlers",[570,829,830],{"class":757}," ...",[570,832,620],{"class":576},[570,834,775],{"class":757},[570,836,837],{"class":576},"Handler",[570,839,719],{"class":757},[570,841,809],{"class":576},[570,843,775],{"class":757},[570,845,837],{"class":576},[570,847,848],{"class":587},"          \u002F\u002F több handler, egy-egy rekordklón mindnek\n",[570,850,852,854,857,859,862,864,866,869,871,874,876,878,880,882,884,886,888],{"class":572,"line":851},3,[570,853,758],{"class":757},[570,855,856],{"class":761}," LevelFilter",[570,858,765],{"class":757},[570,860,861],{"class":768},"min",[570,863,809],{"class":576},[570,865,775],{"class":757},[570,867,868],{"class":576},"Level",[570,870,781],{"class":757},[570,872,873],{"class":768}," next",[570,875,809],{"class":576},[570,877,775],{"class":757},[570,879,837],{"class":576},[570,881,719],{"class":757},[570,883,809],{"class":576},[570,885,775],{"class":757},[570,887,837],{"class":576},[570,889,890],{"class":587}," \u002F\u002F minimum-szint kapu\n",[455,892,457,893,895,896,898,899,902],{},[459,894,480],{}," azért létezik, mert nem minden leaf-handler szűr magától (egy OTLP bridge például mindent továbbít, amit kap): tedd legkívülre, és minden mögötte lévő handler csak a minimum szint fölötti rekordokat látja. A ",[459,897,483],{}," minden handlernek a rekord saját klónját adja, és az ",[459,900,901],{},"Enabled","-et handlerenkénti gate-ként tiszteli; egyetlen handler esetén allokáció nélkül, önmagaként tér vissza.",[557,904,906],{"id":905},"használat","Használat",[455,908,909,910,912],{},"Sima Go program, framework és ",[459,911,427],{}," nélkül:",[561,914,917],{"className":749,"code":915,"filename":916,"language":577,"meta":566,"style":566},"package main\n\nimport (\n    \"log\u002Fslog\"\n    \"os\"\n\n    \"github.com\u002Fgp-system\u002Flogx\"\n)\n\nfunc main() {\n    cfg := logx.Config{Level: slog.LevelInfo, Format: \"monolog\"}\n\n    slog.SetDefault(slog.New(\n        logx.LevelFilter(cfg.Level, logx.Fanout(\n            logx.ConsoleHandler(os.Stdout, cfg, true, \"myapp\"),\n            \u002F\u002F ide kerülhet még handler: fájl-handler, saját sink, ...\n        )),\n    ))\n\n    slog.Info(\"service starting\", \"addr\", \":3000\")\n}\n","main.go",[459,918,919,927,933,942,953,963,968,977,983,988,1002,1052,1057,1080,1109,1150,1156,1162,1168,1173,1212],{"__ignoreMap":566},[570,920,921,924],{"class":572,"line":573},[570,922,923],{"class":757},"package",[570,925,926],{"class":576}," main\n",[570,928,929],{"class":572,"line":817},[570,930,932],{"emptyLinePlaceholder":931},true,"\n",[570,934,935,939],{"class":572,"line":851},[570,936,938],{"class":937},"s7zQu","import",[570,940,941],{"class":757}," (\n",[570,943,945,948,950],{"class":572,"line":944},4,[570,946,947],{"class":757},"    \"",[570,949,472],{"class":576},[570,951,952],{"class":757},"\"\n",[570,954,956,958,961],{"class":572,"line":955},5,[570,957,947],{"class":757},[570,959,960],{"class":576},"os",[570,962,952],{"class":757},[570,964,966],{"class":572,"line":965},6,[570,967,932],{"emptyLinePlaceholder":931},[570,969,971,973,975],{"class":572,"line":970},7,[570,972,947],{"class":757},[570,974,464],{"class":576},[570,976,952],{"class":757},[570,978,980],{"class":572,"line":979},8,[570,981,982],{"class":757},")\n",[570,984,986],{"class":572,"line":985},9,[570,987,932],{"emptyLinePlaceholder":931},[570,989,991,993,996,999],{"class":572,"line":990},10,[570,992,758],{"class":757},[570,994,995],{"class":761}," main",[570,997,998],{"class":757},"()",[570,1000,1001],{"class":757}," {\n",[570,1003,1005,1009,1012,1015,1017,1019,1022,1024,1027,1029,1031,1034,1036,1039,1041,1044,1046,1049],{"class":572,"line":1004},11,[570,1006,1008],{"class":1007},"sTEyZ","    cfg ",[570,1010,1011],{"class":757},":=",[570,1013,1014],{"class":576}," logx",[570,1016,775],{"class":757},[570,1018,554],{"class":576},[570,1020,1021],{"class":757},"{",[570,1023,868],{"class":1007},[570,1025,1026],{"class":757},":",[570,1028,809],{"class":1007},[570,1030,775],{"class":757},[570,1032,1033],{"class":1007},"LevelInfo",[570,1035,781],{"class":757},[570,1037,1038],{"class":1007}," Format",[570,1040,1026],{"class":757},[570,1042,1043],{"class":757}," \"",[570,1045,725],{"class":580},[570,1047,1048],{"class":757},"\"",[570,1050,1051],{"class":757},"}\n",[570,1053,1055],{"class":572,"line":1054},12,[570,1056,932],{"emptyLinePlaceholder":931},[570,1058,1060,1063,1065,1068,1070,1072,1074,1077],{"class":572,"line":1059},13,[570,1061,1062],{"class":1007},"    slog",[570,1064,775],{"class":757},[570,1066,1067],{"class":761},"SetDefault",[570,1069,765],{"class":757},[570,1071,620],{"class":1007},[570,1073,775],{"class":757},[570,1075,1076],{"class":761},"New",[570,1078,1079],{"class":757},"(\n",[570,1081,1083,1086,1088,1090,1092,1095,1097,1099,1101,1103,1105,1107],{"class":572,"line":1082},14,[570,1084,1085],{"class":1007},"        logx",[570,1087,775],{"class":757},[570,1089,480],{"class":761},[570,1091,765],{"class":757},[570,1093,1094],{"class":1007},"cfg",[570,1096,775],{"class":757},[570,1098,868],{"class":1007},[570,1100,781],{"class":757},[570,1102,1014],{"class":1007},[570,1104,775],{"class":757},[570,1106,483],{"class":761},[570,1108,1079],{"class":757},[570,1110,1112,1115,1117,1119,1121,1123,1125,1128,1130,1132,1134,1138,1140,1142,1145,1147],{"class":572,"line":1111},15,[570,1113,1114],{"class":1007},"            logx",[570,1116,775],{"class":757},[570,1118,476],{"class":761},[570,1120,765],{"class":757},[570,1122,960],{"class":1007},[570,1124,775],{"class":757},[570,1126,1127],{"class":1007},"Stdout",[570,1129,781],{"class":757},[570,1131,784],{"class":1007},[570,1133,781],{"class":757},[570,1135,1137],{"class":1136},"sfNiH"," true",[570,1139,781],{"class":757},[570,1141,1043],{"class":757},[570,1143,1144],{"class":580},"myapp",[570,1146,1048],{"class":757},[570,1148,1149],{"class":757},"),\n",[570,1151,1153],{"class":572,"line":1152},16,[570,1154,1155],{"class":587},"            \u002F\u002F ide kerülhet még handler: fájl-handler, saját sink, ...\n",[570,1157,1159],{"class":572,"line":1158},17,[570,1160,1161],{"class":757},"        )),\n",[570,1163,1165],{"class":572,"line":1164},18,[570,1166,1167],{"class":757},"    ))\n",[570,1169,1171],{"class":572,"line":1170},19,[570,1172,932],{"emptyLinePlaceholder":931},[570,1174,1176,1178,1180,1183,1185,1187,1190,1192,1194,1196,1199,1201,1203,1205,1208,1210],{"class":572,"line":1175},20,[570,1177,1062],{"class":1007},[570,1179,775],{"class":757},[570,1181,1182],{"class":761},"Info",[570,1184,765],{"class":757},[570,1186,1048],{"class":757},[570,1188,1189],{"class":580},"service starting",[570,1191,1048],{"class":757},[570,1193,781],{"class":757},[570,1195,1043],{"class":757},[570,1197,1198],{"class":580},"addr",[570,1200,1048],{"class":757},[570,1202,781],{"class":757},[570,1204,1043],{"class":757},[570,1206,1207],{"class":580},":3000",[570,1209,1048],{"class":757},[570,1211,982],{"class":757},[570,1213,1215],{"class":572,"line":1214},21,[570,1216,1051],{"class":757},[455,1218,1219,1220,1222,1223,1226],{},"A frameworkön belül a ",[459,1221,515],{}," ugyanígy építi a default loggert, csak két plusz handlerrel a fanoutban: az OTel log-bridge-dzsel és a Sentry capture handlerrel. Lásd a ",[497,1224,1225],{"href":437},"Telemetry: Logolás"," oldalt ehhez a kompozícióhoz.",[557,1228,1230],{"id":1229},"kapcsolódó-oldalak","Kapcsolódó oldalak",[1232,1233,1234,1248,1260],"ul",{},[1235,1236,1237,1240,1241,1244,1245,1247],"li",{},[497,1238,1239],{"href":338},"logx: Monolog-formázó",": a ",[459,1242,1243],{},"[dátum] channel.SZINT: üzenet"," formátum, stack trace-ek az ",[459,1246,273],{},"-ből, és egy Laravel\u002FSymfony-fogalommegfeleltetés.",[1235,1249,1250,1253,1254,1256,1257,1259],{},[497,1251,1252],{"href":433},"Telemetry: Áttekintés",": hogyan fanoutolja a ",[459,1255,515],{}," a ",[459,1258,328],{}," konzol-handlerét az OTel-bridge és a Sentry-handler mellé.",[1235,1261,1262,1265,1266,1268],{},[497,1263,1264],{"href":278},"errs: Áttekintés",": a hibatípus, amiből a ",[459,1267,468],{}," a stack trace-t rendereli.",[1270,1271,1272],"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 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 .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 .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--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 .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 .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}",{"title":566,"searchDepth":817,"depth":817,"links":1274},[1275,1276,1277,1278,1279],{"id":559,"depth":817,"text":16},{"id":645,"depth":817,"text":165},{"id":739,"depth":817,"text":740},{"id":905,"depth":817,"text":906},{"id":1229,"depth":817,"text":1230},"Önálló slog-kompozíció (konzolformátum, szintszűrés, fanout), plusz egy PHP\u002FMonolog-stílusú konzol-formázó.","md",null,{},{"icon":329},{"title":52,"description":1280},"KCV9GecAFVHRcAWG1d31xJ69GtxxR3tLZXudijK5lKA",[1288,1290],{"title":323,"path":324,"stem":325,"description":1289,"icon":326,"children":-1},"Struct-tag-alapú kérés-validáció go-playground\u002Fvalidatorral, strict middleware-ként futtatva, 422 problem-válaszokkal.",{"title":337,"path":338,"stem":339,"description":1291,"icon":47,"children":-1},"Egy PHP\u002FMonolog-stílusú konzol-formázó, egy errs hibából kinyert, teljes útvonalú stack trace-szel.",1787346794945]