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
120
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
330
心理的安全性を学び直し、 「いい組織とは何か?」を考えてみる
infiniteloop_inc
0
420
ゼロからつくる 2D物理シミュレーション ~物理現象をコードに落とし込む方法~
infiniteloop_inc
0
540
詫び石の裏側
infiniteloop_inc
0
420
[新卒向け研修資料] テスト文字列に「うんこ」と入れるな(2024年版)
infiniteloop_inc
6
26k
リファクタリングで実装が○○分短縮した話
infiniteloop_inc
0
160
ADRという考えを取り入れてみて
infiniteloop_inc
0
150
I ❤ Virtual Machines 仮想環境をより便利に使うツールたち
infiniteloop_inc
0
100
アニメーションとスキニングをBurstで独自実装する
infiniteloop_inc
0
270
Other Decks in Programming
See All in Programming
週次リリースを実現するための グローバルアプリ開発
tera_ny
1
1.2k
AppRouterを用いた大規模サービス開発におけるディレクトリ構成の変遷と問題点
eiganken
1
440
ErdMap: Thinking about a map for Rails applications
makicamel
1
580
QA環境で誰でも自由自在に現在時刻を操って検証できるようにした話
kalibora
1
140
asdf-ecspresso作って 友達が増えた話 / Fujiwara Tech Conference 2025
koluku
0
1.3k
Flatt Security XSS Challenge 解答・解説
flatt_security
0
730
functionalなアプローチで動的要素を排除する
ryopeko
1
190
PHPとAPI Platformで作る本格的なWeb APIアプリケーション(入門編) / phpcon 2024 Intro to API Platform
ttskch
0
390
Findy Team+ Awardを受賞したかった!ベストプラクティス応募内容をふりかえり、開発生産性向上もふりかえる / Findy Team Plus Award BestPractice and DPE Retrospective 2024
honyanya
0
140
traP の部内 ISUCON とそれを支えるポータル / PISCON Portal
ikura_hamu
0
180
DevFest - Serverless 101 with Google Cloud Functions
tunmise
0
140
知られざるDMMデータエンジニアの生態 〜かつてツチノコと呼ばれし者〜
takaha4k
1
290
Featured
See All Featured
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.2k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
Side Projects
sachag
452
42k
Site-Speed That Sticks
csswizardry
2
260
How GitHub (no longer) Works
holman
312
140k
A Philosophy of Restraint
colly
203
16k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
RailsConf 2023
tenderlove
29
970
Fashionably flexible responsive web design (full day workshop)
malarkey
406
66k
Building Better People: How to give real-time feedback that sticks.
wjessup
366
19k
Adopting Sorbet at Scale
ufuk
74
9.2k
Being A Developer After 40
akosma
89
590k
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