Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
500万行のPHPプロジェクトにおけるログ出力の歩み
Search
Infiniteloop
October 18, 2023
Programming
0
110
500万行のPHPプロジェクトにおけるログ出力の歩み
【タガヤス その13】ILの日常業務から 発表資料
https://tagayas.connpass.com/event/145290/
Infiniteloop
October 18, 2023
Tweet
Share
More Decks by Infiniteloop
See All by Infiniteloop
俺の PHP プロファイラの話 PHP スクリプトで PHP 処理系のメモリをのぞき込む
infiniteloop_inc
0
270
心理的安全性を学び直し、 「いい組織とは何か?」を考えてみる
infiniteloop_inc
0
340
ゼロからつくる 2D物理シミュレーション ~物理現象をコードに落とし込む方法~
infiniteloop_inc
0
410
詫び石の裏側
infiniteloop_inc
0
370
[新卒向け研修資料] テスト文字列に「うんこ」と入れるな(2024年版)
infiniteloop_inc
6
25k
リファクタリングで実装が○○分短縮した話
infiniteloop_inc
0
140
ADRという考えを取り入れてみて
infiniteloop_inc
0
130
I ❤ Virtual Machines 仮想環境をより便利に使うツールたち
infiniteloop_inc
0
83
アニメーションとスキニングをBurstで独自実装する
infiniteloop_inc
0
230
Other Decks in Programming
See All in Programming
Quine, Polyglot, 良いコード
qnighy
4
650
subpath importsで始めるモック生活
10tera
0
310
Better Code Design in PHP
afilina
PRO
0
130
レガシーシステムにどう立ち向かうか 複雑さと理想と現実/vs-legacy
suzukihoge
14
2.2k
RubyLSPのマルチバイト文字対応
notfounds
0
120
WebフロントエンドにおけるGraphQL(あるいはバックエンドのAPI)との向き合い方 / #241106_plk_frontend
izumin5210
4
1.4k
リアーキテクチャxDDD 1年間の取り組みと進化
hsawaji
1
220
型付き API リクエストを実現するいくつかの手法とその選択 / Typed API Request
euxn23
8
2.2k
聞き手から登壇者へ: RubyKaigi2024 LTでの初挑戦が 教えてくれた、可能性の星
mikik0
1
130
受け取る人から提供する人になるということ
little_rubyist
0
250
Laravel や Symfony で手っ取り早く OpenAPI のドキュメントを作成する
azuki
2
120
카카오페이는 어떻게 수천만 결제를 처리할까? 우아한 결제 분산락 노하우
kakao
PRO
0
110
Featured
See All Featured
Speed Design
sergeychernyshev
25
620
Into the Great Unknown - MozCon
thekraken
32
1.5k
Typedesign – Prime Four
hannesfritz
40
2.4k
Imperfection Machines: The Place of Print at Facebook
scottboms
265
13k
Music & Morning Musume
bryan
46
6.2k
The World Runs on Bad Software
bkeepers
PRO
65
11k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
28
8.2k
Product Roadmaps are Hard
iamctodd
PRO
49
11k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
27
4.3k
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.4k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.1k
Transcript
ສߦ 1)1ϓϩδΣΫτʹ͓͚Δϩάग़ྗͷาΈ λΨϠεͦͷ 1
4IJOJDIJ4BUP ࣗݾհ ࠤ౻৳Ұ גࣜձࣾΠϯϑΟχοτϧʔϓ 2
͓ࣄ ϓϩδΣΫτͷΧελϚʔαϙʔτܥ ௐࠪΛ୲ ɾΧελϚʔαϙʔτ $4 ܥͷௐࠪɾରԠ ɾ$4ͷۀʹؔ͢Δվળ ɾԆͷௐࠪɺվળ ͳͲͳͲʜ 3
ϩάͷ͍ಓ ϩάͬͯͲΜͳ༻్ʹΘΕΔΜͩΖ͏ʁ ɾಈ࡞ௐࠪ ɾੑೳௐࠪ ɾ͍߹Θͤௐࠪ ɾԆௐࠪ ɾ,1*ௐࠪ ͳͲͳͲʜ 4
ϩάͦΜͳʹ͍Ζ͍Ζ͑ΔͷͰ͋Ε ͬͱೖΕΑ͏ʂͱࢥ͏͕ʜ 1+ॳظͷϩάͷ͠͞ 5
։ൃॳظʹ༨༟͕ͳ͘ϩάʹ࣌ؒΛ͔͚Εͳ͍ ։ൃॳظஈ֊ͰϝΠϯͷػೳ։ൃͰ͕࣌ؒͱΒΕͯ ϩάͷݕ౼࣮·Ͱख͕·ΘΒͳ͍ 6
αʔϏεͷӡ༻ظ͕ؒෆ໌ αʔϏεͷӡ༻͕ͲΕ͘Β͍ͷظؒ͞ΕΔͷ͔ ϩάʹ࣌ؒΛͲΕ͘Β͍͔͚Δ͖ͳͷ͔அ͕͍͠ 7
Կͷϩά͕ඞཁͳͷ͔ݕ౼͕ඞཁ Ͳ͏͍͏ใ͕ඞཁʹͳΔͷ͔ ͲΜͳछྨͷϩά͕ඞཁͳͷ͔ݕ౼͕ඞཁ 8
ӡ༻ʹೖ͔ͬͯΒཉ͘͠ͳΔ ॏཁੑ͕ӡ༻ʹೖ͔ͬͯΒ໌Β͔ʹͳͬͨΓ ඞཁͳ͜ͱʹؾͮ͘ใ͋Δ 9
ใͷࢄ ։ൃॳظʹ༷ʑͳ ϩά͕͋Γͯ͢ͷϩάΛඥ͚ͮͯௐࠪ͢Δͷେม 10
ϩάͷछྨ͕ෳ͋Γใ͕ͦΕͧΕࢄ ͞Εͯग़ྗ͞Ε͍ͯͨ 11
ҟͳΔଐੑͷใͱΈ߹Θͤͯඥ͚ͮ ɾ"1*ϩά ɾαʔόʔϩά ɾ%#্ͷσʔλ ඥ͚ͮͷྫ αʔόʔͷϩάʹॲཧதͷใ͔͠ͳ͘"1*Ͱ ͲΜͳΛड͚ೖΕͨͷ͔"1*ͷϩάΛΈΔ 12
ใΛݟͯϚʔδ͢Δ࡞ۀ͕ඞཁʹͳΔ ಉ͡ଐੑͱඥͮ͘ͷͲΕͰͲͷΑ͏ͳ ͭͳ͕ΓΛϚʔδ͢Δඞཁ͕͋Δ 13
ใ͕ࢄ͍ͯ͠ΔͷͰ୳ͮ͠Β͍ αʔόʔϩάΛڧԽͯ̍͠छྨͷϩάͰͳΔ ͘ݟΕΔ ͑Δ Α͏ʹऩूϩάΛڧԽ 14
$MPVE8BUDI "84͕ఏڙ͢Δ ʮϑϧϚωʔδυӡ༻ࢹαʔϏεʯ 15
֤छΠϯελϯεͳͲͷ ϞχλϦϯάσʔλͱӡ༻σʔλΛऩू͠ҟৗͷ ݕσʔλͷࢹ֮ԽΛߦ͑ͨΓ͠·͢ 16
ϩάʹؔͯ͠ҎԼΛ༻͍ͯ͠·͢ ɾ$MPVE8BUDI-PHT ɾ$MPVE8BUDI-PHT*OTJHIUT 17
$MPVE8BUDI-PHT ΠϯελϯεͳͲ͓Αͼͦͷଞͷιʔεͷ ϩάϑΝΠϧͷࢹɺอଘɺΞΫηε͕Ͱ͖·͢ɻ 18
ɾϩάͷςΩετݕࡧ ɾ+40/ܗࣜͷϝοηʔδ ؆ૉͳ݅ݕࡧͳͲ͕ՄೳͰ͢ 19
ओʹͲΜͳ͜ͱʹ༻͍ͯ͠Δ͔ʁ ɾॳಈௐࠪ࣌ͷϩάͷ֬ೝ ɾ؆ૉͳςΩετɾ+40/ݕࡧͰߦ͑Δ֬ೝ 20
ը໘Πϝʔδ 21
ςΩετݕࡧ ϩάྫ \ UJNFTUBNQ DPNNPO\ DMPDL ^
EFUBJM\ NFTTBHFϩάςετ IPHF@JE ^ ^ ςΩετݕࡧྫ ϩάςετ ˞ςΩετݕࡧͰ֯εϖʔε۠ΓͰ"/%ݕࡧ 22
+40/ݕࡧ +40/ܗࣜͷ߹ͷ݅ݕࡧ \EFUBJMNFTTBHFϩάςετ^ \EFUBJMNFTTBHFϩάςετEFUBJMIPHF@JE^ 23 ϩάྫ \ UJNFTUBNQ DPNNPO\
DMPDL ^ EFUBJM\ NFTTBHFϩάςετ IPHF@JE ^ ^
$MPVE8BUDI-PHT*OTJHIUT "NB[PO$MPVE8BUDI-PHTͷϩάσʔλΛ ΠϯλϥΫςΟϒʹݕࡧͯ͠ੳͰ͖·͢ɻ ΫΤϦΛ࣮ߦ͢Δ͜ͱͰɺӡ༻্ͷʹ͢ ͘ޮՌతʹରԠͰ͖·͢ɻ 24
$MPVE8BUDI-PHTΑΓෳࡶͳઐ༻ΫΤϦ Λ͛ͯΑΓৄࡉͳߜΓࠐΈநग़Λߦ͏͜ ͱ͕ՄೳͰ͢ 25
ओʹͲΜͳ͜ͱʹ༻͍ͯ͠Δ͔ʁ ɾௐࠪ࣌ͷϩάͷ֬ೝɾूܭ ɾઐ༻ΫΤϦɾίϚϯυΛ͛ͯूܭ͢Δ ɾूܭͷ؆қతͳՄࢹԽ 26
27 ը໘Πϝʔδ
ΫΤϦݕࡧ ϩάྫ \ UJNFTUBNQ DPNNPO\ DMPDL ^
EFUBJM\ NFTTBHFϩάςετ IPHF@JE ^ ^ $MPVE8BUDI-PHT*OTJHIUTͰͷ݅ݕࡧ pMUFS!NFTTBHF-*,&ϩάςετ pMUFS!NFTTBHF-*,&ϩάςετBOEEFUBJMIPHF@JE 28
ΫΤϦݕࡧ ूܭ $MPVE8BUDI-PHT*OTJHIUTͰͷ݅ݕࡧ ྫɿ͝ͱʹϩάʹه͞ΕΔྫ֎ϩάͷ pMUFS!NFTTBHFMJLF&YDFQUJPO cTUBUTDPVOU BTFYDFQUJPO$PVOUCZCJO N cTPSUFYDFQUJPO$PVOUEFTD
29 CJO N FYDFQUJPO$PVOU 5 5 ݁Ռྫ
άϥϑදࣔ ΫΤϦݕࡧޙɺൃੜ͕݅άϥϑͰදࣔ͞Ε·͢ ɾൃੜͷ ɾൃੜͷස ͳͲΛ༰қʹՄࢹԽͯ֬͠ೝ͢Δ͜ͱ͕Ͱ͖·͢ 30
͜Ε͚ͩͰௐࠪͱूܭͰ͖Δ͕ʜ ੍࣮ݶͳͲ͕͋ͬͨΓ͠·͢ 31
ɾઐ༻ΫΤϦίϚϯυ ɾݕࡧ݁Ռߦ·Ͱͷ੍ݶ͕͋Δ )*5͕݅݅͑Δͷ͕ͩʜ ,1*ͷੳͱ͔͢ΔʹͭΒ͍ʜ $MPVE8BUDI-PHT*OTJHIUTͷऑ ˞࠷ۙ·ͰΠϯελϯεލ͗ͰݕࡧͰ͖ͳ͔ͬͨΓ ˞ݱࡏͷใ 32
"UIFOB "84͕ఏڙ͢Δ 4ͷσʔλΛඪ४42-Λ༻ͯ͠ੳͰ͖Δ ϩάσʔλΛΫϩʔϧͨ͠ςʔϒϧใ ඪ४తͳ42-ΫΤϦΛൃߦͯ͠ෳͷ छྨͷϩάใΛ݁߹͠ूܭΛߦ͏͜ͱ͕Ͱ͖Δ 33
σʔλΛ4 "84ͷετϨʔδαʔϏε సૹ ͢Δඞཁ͋Γ·͕͢ ରσʔλ42-Λ͛ͯσʔλ͕औಘ͍͢͠ ɾඪ४తͳ42-ΫΤϦΛ༻Ͱ͖ΔͷͰֶशίετ͍ ɾߦͳͲͷ੍ݶ͕ͳ͍ 34
"UIFOBͷύΠϓϥΠϯ 35
ը໘Πϝʔδ 36
ςʔϒϧྫͦͷ̍ ϩάྫ \ UJNFTUBNQ DPNNPO\ DMPDL ^
EFUBJM\ NFTTBHFϩάςετ IPHF@JE ^ ^ IPHF@JE@UBCMF 37
4&-&$5ͷྫ 4&-&$5 UJNFTUBNQBTUJNF DPNNPODMPDLBTDMPDL EFUBJMNFTTBHFBTNFTTBHF EFUBJMIPHF@JEBTIPHF@JE '30.
IPHF@JE@UBCMF UJNFDMPDLNFTTBHFIPHF@JE ϩάςετ ݁Ռ 38
ςʔϒϧྫͦͷ̎ ϩάྫ \ UJNFTUBNQ DPNNPO\ DMPDL ^
EFUBJM\ NFTTBHFϩάςετ IPHF@JE ^ ^ IPHF@JE@UBCMF ϩάྫ \ UJNFTUBNQ DPNNPO\ DMPDL ^ EFUBJM\ NFTTBHFςετΞΠςϜ IPHF@JE ɹɹJUFN@JE ^ ^ IPHF@VTF@JUFN@UBCMF 39
+0*/ͷྫ 4&-&$5 IPHF@JE@UBCMFEFUBJMIPHF@JEBTIPHF@JE IPHF@VTF@JUFN@UBCMFEFUBJMJUFN@JEBTJUFN@JE '30. IPHF@JE@UBCMF +0*/ IPHF@VTF@JUFN@UBCMF 0/ IPHF@JE@UBCMFIPHF@JEIPHF@VTF@JUFN@UBCMFIPHF@JE
IPHF@JEJUFN@JE ݁Ռ 40
"UIFOB༻ͯ͠Έͯ ɾूܭ͕ࠔͩͬͨ,1*ͷूܭ ɾσʔλͷՄࢹԽΛࢹʹೖΕͨूܭ ɾαʔϏεͷ%#ʹґଘ͠ͳ͍҆શͳूܭ ɾΧδϡΞϧʹ42-ΫΤϦΛ͛ͯूܭ͕Ͱ͖Δ 41
ϩάͷྺ࢙ ॳظ ɾϩά͕ͳ͍ ɾϧʔϧ͕ܾ·ͬͯͳ͍ ɾूܭ͕Ͱ͖ͳ͍ ɾαʔόʔ্ͷςΩετϕʔεͷϩά͔Βूܭ 42
ϩά͕ͳ͍ ɾඞཁͳϩάͷચ͍ग़͠ɾϩάͷՃ ɾαʔόʔϩάʹใΛू 43
ɾඞཁͰ͋Δ͖ϩά͕ͳ͍ ɾϑΥʔϚοτ͕༷ʑ ϧʔϧ͕ܾ·ͬͯͳ͍ 44
ɾϩά͕ͳ͘ूܭ͕͍͠ ɾ෮ݩ%#ʹཔΔͷͰίετ͕ߴ͍ ूܭ͕Ͱ͖ͳ͍ 45
ɾHSFQྗίϚϯυͷࣝͳͲʹґଘ ɾूܭํ๏༷ʑ ςΩετϕʔεͷϩά͔Βूܭ 46
ϩάͷྺ࢙ தظ ɾϩάͷू ɾϩάͷܽམ ɾϩάϑΥʔϚοτͷमਖ਼ 47
ϩάͷू ɾ֤αʔόʔ͕ϩάΛqVFOUEͰதܧαʔόू 48
ϩάͷܽམ ɾ֤αʔόʔ͔ΒϩάΛqVFOUEͰҰ୴ ɹதܧαʔόʹू͍͕ͯͨ͠ɺू࣌ʹ ɹ࣌ં٧·Γ͕ൃੜ͠ϩά͕ܽམ͍ͯͨ͠ɻ ɾ֤αʔόʔͷखݩʹॻ͖ग़͠ɺ֤αʔόͰ ɹ$MPVE8BUDIసૹ 49
ϩάϑΥʔϚοτͷमਖ਼ ɾϩάͷه๏ϧʔϧܾΊ ɾओʹϑΥʔϚοτͷ౷ҰͰݕࡧੑͷ্ ɹ ݕࡧ࿙Εରࡦ 50
ϩάͷྺ࢙ ࠷ۙ ɾϩάग़ྗͷ+40/Խ ɾԆϩάͳͲͷϞχλϦϯά ɾ*OTJHIUTɾ"UIFOBͷ׆༻ 51
ϩάग़ྗͷ+40/Խ ɾ$MPVE8BUDI্ͰͷݕࡧੑΛ্ ɾϩάه๏ͷ͞ΒͳΔϧʔϧܾΊ 52
ԆϩάͳͲͷϞχλϦϯά ɾ$MPVE8BUDIΛ༻ͨ͠Ԇϩάͷݟ͑ΔԽ ɾݟ͑ΔԽʹΑΓؾ͖ͮ͘͢ͳΓΛൃݟ ɹ͘͢͠ͳͬͨ 53
*OTJHIUTɾ"UIFOBͷ׆༻ ɾϩάͷूܭํ๏ͷཱ֬ ɾϩά͔Βͷਂງͨ͠ूܭͷ࣮ݱ 54
ݱࡏʹࢸΔʜ 55
࠷ޙʹ ɾϩάओͰͳ͍͕αʔϏεͷӡ༻ɾվળ ɹΛߦ͏ͨΊʹॏཁ ɾͰ͖Δ͚ͩαʔϏεΠϯલ͔ΒϧʔϧඋΛ ɾϩάͱ͖߹͏͜ͱʹγεςϜͱ͖߹͏͜ͱ ɾϩάͱ͍͏ଘࡏΛΕͳ͍ 56
ͨ·ʹʜ ϩάͷ͜ͱؾʹ͔͚ͯ͋͛·͠ΐ͏ স ?@? 57
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ 58