![Page 1: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/1.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Structured logging
Bartek ’BaSz’ Szurgot
https://www.baszerr.eu
November 12, 2017
![Page 2: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/2.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Intro
![Page 3: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/3.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Who am I?
Dealing with:C++LinuxEmbedded SWDistributed SWAlgorithms and data structuresDevOpsSecurityElectronics3D printing
Bartek Szurgot =⇒ BaSz
#!/bin/bash
![Page 4: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/4.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Who am I?
Dealing with:C++LinuxEmbedded SWDistributed SWAlgorithms and data structuresDevOpsSecurityElectronics3D printing
Bartek Szurgot =⇒ BaSz
#!/bin/bash
![Page 5: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/5.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
A tale of a string search
https://4.bp.blogspot.com/-F48BQn1wEJs/TfXum59GPwI/AAAAAAAAAX8/8_iFn6oQK28/s1600/Yarly.jpg
http://sarasotadetail.com/gallery2/d/7262-1/srsly-40515.jpg
![Page 6: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/6.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
A tale of a string search
1 template<unsigned N>2 char* findX(char (&str)[N])3 {4 for (auto i t=str ; i t !=str+N; ++i t )5 i f (* i t == ’x ’ )6 return i t ;7 return nul lptr ;8 }
https://4.bp.blogspot.com/-F48BQn1wEJs/TfXum59GPwI/AAAAAAAAAX8/8_iFn6oQK28/s1600/Yarly.jpg
http://sarasotadetail.com/gallery2/d/7262-1/srsly-40515.jpg
![Page 7: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/7.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
A tale of a string search
1 template<unsigned N>2 char* findX(char (&str)[N])3 {4 for(auto it=str; it!=str+N; ++it)5 if(*it == ’x’)6 return it;7 return nul lptr ;8 }
https://4.bp.blogspot.com/-F48BQn1wEJs/TfXum59GPwI/AAAAAAAAAX8/8_iFn6oQK28/s1600/Yarly.jpg
http://sarasotadetail.com/gallery2/d/7262-1/srsly-40515.jpg
![Page 8: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/8.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
A tale of a string search
1 template<unsigned N>2 char* findX(char (&str)[N])3 {4 for(auto it=str; it!=str+N; ++it)5 if(*it == ’x’)6 return it;7 return nullptr;8 }
https://4.bp.blogspot.com/-F48BQn1wEJs/TfXum59GPwI/AAAAAAAAAX8/8_iFn6oQK28/s1600/Yarly.jpg
http://sarasotadetail.com/gallery2/d/7262-1/srsly-40515.jpg
![Page 9: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/9.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
A tale of a string search
1 template<unsigned N>2 char* findX(char (&str)[N])3 {4 for(auto it=str; it!=str+N; ++it)5 if(*it == ’x’)6 return it;7 return nullptr;8 }
https://4.bp.blogspot.com/-F48BQn1wEJs/TfXum59GPwI/AAAAAAAAAX8/8_iFn6oQK28/s1600/Yarly.jpg
http://sarasotadetail.com/gallery2/d/7262-1/srsly-40515.jpg
![Page 10: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/10.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
A tale of a string search
1 template<unsigned N>2 char* findX(char (&str)[N])3 {4 for(auto it=str; it!=str+N; ++it)5 if(*it == ’x’)6 return it;7 return nullptr;8 }
https://4.bp.blogspot.com/-F48BQn1wEJs/TfXum59GPwI/AAAAAAAAAX8/8_iFn6oQK28/s1600/Yarly.jpg
http://sarasotadetail.com/gallery2/d/7262-1/srsly-40515.jpg
![Page 11: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/11.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
String search – sentinel1 template<unsigned N>2 char* findX(char (&str)[N])3 {4 str [N−1] = ’x ’ ;5 auto i t=str ;6 while (* i t != ’x ’ )7 ++i t ;8 str [N−1] = 0;9 i f ( i t == str+N−1)
10 return nul lptr ;11 return i t ;12 }
http://www.soggypuffs.com/wp-content/uploads/2013/03/surprised-baby.jpg
![Page 12: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/12.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
String search – sentinel1 template<unsigned N>2 char* findX(char (&str)[N])3 {4 str[N-1] = ’x’;5 auto i t=str ;6 while (* i t != ’x ’ )7 ++i t ;8 str [N−1] = 0;9 i f ( i t == str+N−1)
10 return nul lptr ;11 return i t ;12 }
http://www.soggypuffs.com/wp-content/uploads/2013/03/surprised-baby.jpg
![Page 13: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/13.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
String search – sentinel1 template<unsigned N>2 char* findX(char (&str)[N])3 {4 str[N-1] = ’x’;5 auto it=str;6 while(*it!=’x’)7 ++it;8 str [N−1] = 0;9 i f ( i t == str+N−1)
10 return nul lptr ;11 return i t ;12 }
http://www.soggypuffs.com/wp-content/uploads/2013/03/surprised-baby.jpg
![Page 14: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/14.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
String search – sentinel1 template<unsigned N>2 char* findX(char (&str)[N])3 {4 str[N-1] = ’x’;5 auto it=str;6 while(*it!=’x’)7 ++it;8 str[N-1] = 0;9 i f ( i t == str+N−1)
10 return nul lptr ;11 return i t ;12 }
http://www.soggypuffs.com/wp-content/uploads/2013/03/surprised-baby.jpg
![Page 15: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/15.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
String search – sentinel1 template<unsigned N>2 char* findX(char (&str)[N])3 {4 str[N-1] = ’x’;5 auto it=str;6 while(*it!=’x’)7 ++it;8 str[N-1] = 0;9 if(it == str+N-1)
10 return nullptr;11 return i t ;12 }
http://www.soggypuffs.com/wp-content/uploads/2013/03/surprised-baby.jpg
![Page 16: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/16.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
String search – sentinel1 template<unsigned N>2 char* findX(char (&str)[N])3 {4 str[N-1] = ’x’;5 auto it=str;6 while(*it!=’x’)7 ++it;8 str[N-1] = 0;9 if(it == str+N-1)
10 return nullptr;11 return it;12 }
http://www.soggypuffs.com/wp-content/uploads/2013/03/surprised-baby.jpg
![Page 17: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/17.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
String search – sentinel1 template<unsigned N>2 char* findX(char (&str)[N])3 {4 str[N-1] = ’x’;5 auto it=str;6 while(*it!=’x’)7 ++it;8 str[N-1] = 0;9 if(it == str+N-1)
10 return nullptr;11 return it;12 }
http://www.soggypuffs.com/wp-content/uploads/2013/03/surprised-baby.jpg
![Page 18: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/18.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
"Just" logging?!
http://www.infiniteunknown.net/wp-content/uploads/2014/03/Captain-Obvious-123.jpghttp://i1.kym-cdn.com/photos/images/original/000/328/383/71c.jpg
![Page 19: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/19.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
"Just" logging?!
http://www.infiniteunknown.net/wp-content/uploads/2014/03/Captain-Obvious-123.jpghttp://i1.kym-cdn.com/photos/images/original/000/328/383/71c.jpg
![Page 20: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/20.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
"Just" logging?!
http://www.infiniteunknown.net/wp-content/uploads/2014/03/Captain-Obvious-123.jpghttp://i1.kym-cdn.com/photos/images/original/000/328/383/71c.jpg
![Page 21: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/21.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Tale of an addressing scheme. . .
0xFA42Note:
Farely (?) unique patternReasonabely easy to grep-through
0xFA42 or 0xfa420x0042 or 0x42FA42 or 4264066 or 66. . .-1470
http://s.quickmeme.com/img/c9/c9d627a0808351c4389ee4a7ef591240b64c7cf8844f979e9d646e26a872dff4.jpg
![Page 22: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/22.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Tale of an addressing scheme. . .
0xFA42
Note:Farely (?) unique patternReasonabely easy to grep-through
0xFA42 or 0xfa420x0042 or 0x42FA42 or 4264066 or 66. . .-1470
http://s.quickmeme.com/img/c9/c9d627a0808351c4389ee4a7ef591240b64c7cf8844f979e9d646e26a872dff4.jpg
![Page 23: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/23.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Tale of an addressing scheme. . .
0xFA42Note:
Farely (?) unique patternReasonabely easy to grep-through
0xFA42 or 0xfa420x0042 or 0x42FA42 or 4264066 or 66. . .-1470
http://s.quickmeme.com/img/c9/c9d627a0808351c4389ee4a7ef591240b64c7cf8844f979e9d646e26a872dff4.jpg
![Page 24: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/24.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Tale of an addressing scheme. . .
0xFA42Note:
Farely (?) unique patternReasonabely easy to grep-through
0xFA42 or 0xfa42
0x0042 or 0x42FA42 or 4264066 or 66. . .-1470
http://s.quickmeme.com/img/c9/c9d627a0808351c4389ee4a7ef591240b64c7cf8844f979e9d646e26a872dff4.jpg
![Page 25: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/25.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Tale of an addressing scheme. . .
0xFA42Note:
Farely (?) unique patternReasonabely easy to grep-through
0xFA42 or 0xfa420x0042 or 0x42
FA42 or 4264066 or 66. . .-1470
http://s.quickmeme.com/img/c9/c9d627a0808351c4389ee4a7ef591240b64c7cf8844f979e9d646e26a872dff4.jpg
![Page 26: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/26.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Tale of an addressing scheme. . .
0xFA42Note:
Farely (?) unique patternReasonabely easy to grep-through
0xFA42 or 0xfa420x0042 or 0x42FA42 or 42
64066 or 66. . .-1470
http://s.quickmeme.com/img/c9/c9d627a0808351c4389ee4a7ef591240b64c7cf8844f979e9d646e26a872dff4.jpg
![Page 27: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/27.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Tale of an addressing scheme. . .
0xFA42Note:
Farely (?) unique patternReasonabely easy to grep-through
0xFA42 or 0xfa420x0042 or 0x42FA42 or 4264066 or 66. . .
-1470
http://s.quickmeme.com/img/c9/c9d627a0808351c4389ee4a7ef591240b64c7cf8844f979e9d646e26a872dff4.jpg
![Page 28: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/28.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Tale of an addressing scheme. . .
0xFA42Note:
Farely (?) unique patternReasonabely easy to grep-through
0xFA42 or 0xfa420x0042 or 0x42FA42 or 4264066 or 66. . .-1470
http://s.quickmeme.com/img/c9/c9d627a0808351c4389ee4a7ef591240b64c7cf8844f979e9d646e26a872dff4.jpg
![Page 29: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/29.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Tale of an addressing scheme. . .
0xFA42Note:
Farely (?) unique patternReasonabely easy to grep-through
0xFA42 or 0xfa420x0042 or 0x42FA42 or 4264066 or 66. . .-1470
http://s.quickmeme.com/img/c9/c9d627a0808351c4389ee4a7ef591240b64c7cf8844f979e9d646e26a872dff4.jpg
![Page 30: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/30.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
What’s on the menu? (ELK-referenced)
Generation
Transforming Indexing Analyzing
http://nephoscale.com/_img/dedicated-server.png
https://www.javacodegeeks.com/wp-content/uploads/2013/06/logo-icon.png
https://michael.bouvy.net/blog/wp-content/uploads/2013/11/logstash.png
https://oliverveits.files.wordpress.com/2016/11/kibana-logo-color-v.png
https://isocpp.org/files/img/cpp_logo.png
![Page 31: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/31.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
What’s on the menu? (ELK-referenced)
Generation Transforming Indexing Analyzing
http://nephoscale.com/_img/dedicated-server.png
https://www.javacodegeeks.com/wp-content/uploads/2013/06/logo-icon.png
https://michael.bouvy.net/blog/wp-content/uploads/2013/11/logstash.png
https://oliverveits.files.wordpress.com/2016/11/kibana-logo-color-v.png
https://isocpp.org/files/img/cpp_logo.png
![Page 32: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/32.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
What’s on the menu? (ELK-referenced)
Generation Transforming Indexing Analyzing
http://nephoscale.com/_img/dedicated-server.png
https://www.javacodegeeks.com/wp-content/uploads/2013/06/logo-icon.png
https://michael.bouvy.net/blog/wp-content/uploads/2013/11/logstash.png
https://oliverveits.files.wordpress.com/2016/11/kibana-logo-color-v.png
https://isocpp.org/files/img/cpp_logo.png
![Page 33: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/33.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
What’s on the menu? (ELK-referenced)
Generation Transforming Indexing Analyzing
http://nephoscale.com/_img/dedicated-server.png
https://www.javacodegeeks.com/wp-content/uploads/2013/06/logo-icon.png
https://michael.bouvy.net/blog/wp-content/uploads/2013/11/logstash.png
https://oliverveits.files.wordpress.com/2016/11/kibana-logo-color-v.png
https://isocpp.org/files/img/cpp_logo.png
![Page 34: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/34.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
What’s on the menu? (ELK-referenced)
Generation Transforming Indexing Analyzing
http://nephoscale.com/_img/dedicated-server.png
https://www.javacodegeeks.com/wp-content/uploads/2013/06/logo-icon.png
https://michael.bouvy.net/blog/wp-content/uploads/2013/11/logstash.png
https://oliverveits.files.wordpress.com/2016/11/kibana-logo-color-v.png
https://isocpp.org/files/img/cpp_logo.png
![Page 35: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/35.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
What’s on the menu? (ELK-referenced)
Generation Transforming Indexing Analyzing
http://nephoscale.com/_img/dedicated-server.png
https://www.javacodegeeks.com/wp-content/uploads/2013/06/logo-icon.png
https://michael.bouvy.net/blog/wp-content/uploads/2013/11/logstash.png
https://oliverveits.files.wordpress.com/2016/11/kibana-logo-color-v.png
https://isocpp.org/files/img/cpp_logo.png
![Page 36: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/36.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
What’s on the menu? (ELK-referenced)
Generation
Transforming Indexing Analyzing
http://nephoscale.com/_img/dedicated-server.png
https://www.javacodegeeks.com/wp-content/uploads/2013/06/logo-icon.png
https://michael.bouvy.net/blog/wp-content/uploads/2013/11/logstash.png
https://oliverveits.files.wordpress.com/2016/11/kibana-logo-color-v.png
https://isocpp.org/files/img/cpp_logo.png
![Page 37: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/37.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
What’s on the menu? (ELK-referenced)
Generation
Transforming Indexing Analyzing
http://nephoscale.com/_img/dedicated-server.png
https://www.javacodegeeks.com/wp-content/uploads/2013/06/logo-icon.png
https://michael.bouvy.net/blog/wp-content/uploads/2013/11/logstash.png
https://oliverveits.files.wordpress.com/2016/11/kibana-logo-color-v.png
https://isocpp.org/files/img/cpp_logo.png
![Page 38: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/38.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Coding part. . .
Highly simplifiedIgnored:
Corner casesThread-safetyOptimizationsError handlingOOP wrappersEncapsulationConsts. . .. . .
Readability++https://i1.wp.com/dbakevlar.com/wp-content/uploads/2016/03/too-easy.png
![Page 39: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/39.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
What is log?
![Page 40: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/40.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Any ideas?
1 72.27.10.1 - - [10/Sep/2017:09:01:35] "GET /ThreadPool.ut.cpp HTTP/1.1" 200 4794 "http://localhost/" "MyBrowser-xx" "-"2 72.27.10.1 - - [10/Sep/2017:09:01:34] "Error processing /ThreadPool.ut.cpp - 404 - no such file of directory"3 72.27.10.1 - - [10/Sep/2017:09:01:34] "GET /CacheLine.ut.cpp HTTP/1.1" 200 2185 "http://localhost/" "MyBrowser-xx" "-"4 72.7.0.1 - - [10/Sep/2017:09:01:35] "GET /ThreadPool.ut.cpp HTTP/1.1" 200 4794 "http://localhost/" "MyBrowser-xx" "-"5 72.7.30.1 - - [10/Sep/2017:09:01:34] "Error processing /ThreadPool.ut.cpp - 404 - no such file of directory"6 72.17.0.221 - - [10/Sep/2017:09:01:28] "GET / HTTP/1.1" 200 2721 "-" "MyBrowser-xx" "-"7 72.7.0.1 - - [10/Sep/2017:09:01:31] "GET /ActiveObject.ut.cpp HTTP/1.1" 200 1107 "http://localhost/" "MyBrowser-xx" "-"8 72.7.0.1 - - [10/Sep/2017:09:01:33] "GET /Fifo.hpp HTTP/1.1" 200 3754 "http://localhost/" "MyBrowser-xx" "-"9 72.7.0.1 - - [10/Sep/2017:09:01:31] "GET /ActiveObject.ut.cpp HTTP/1.1" 200 1107 "http://localhost/" "MyBrowser-xx" "-"
10 72.7.0.1 - - [10/Sep/2017:09:01:33] "GET /Fifo.hpp HTTP/1.1" 200 3754 "http://localhost/" "MyBrowser-xx" "-"11 1.32.0.1 - - [10/Sep/2017:09:01:34] "GET /Provider.hpp HTTP/1.1" 200 1201 "http://localhost/" "MyBrowser-xx" "-"12 172.227.10.1 - - [10/Sep/2017:09:01:34] "GET /CacheLine.ut.cpp HTTP/1.1" 200 2185 "http://localhost/" "MyBrowser-xx" "-"13 72.7.0.1 - - [10/Sep/2017:09:01:35] "GET /ThreadPool.ut.cpp HTTP/1.1" 200 4794 "http://localhost/" "MyBrowser-xx" "-"14 72.7.0.1 - - [10/Sep/2017:09:01:34] "Error processing /ThreadPool.ut.cpp - 404 - no such file of directory"15 42.1.2.4 - - [10/Sep/2017:09:01:34] "GET /CacheLine.ut.cpp HTTP/1.1" 200 2185 "http://localhost/" "MyBrowser-xx" "-"16 72.7.0.1 - - [10/Sep/2017:09:01:35] "GET /ThreadPool.ut.cpp HTTP/1.1" 200 4794 "http://localhost/" "MyBrowser-xx" "-"17 72.7.0.1 - - [10/Sep/2017:09:01:36] "GET /JoiningThread.ut.cpp HTTP/1.1" 200 2099 "http://localhost/" "MyBrowser-xx" "-"18 72.7.0.1 - - [10/Sep/2017:09:01:37] "GET /ThreadsCount.hpp HTTP/1.1" 200 474 "http://localhost/" "MyBrowser-xx" "-"19 72.7.0.1 - - [10/Sep/2017:09:01:40] "GET /ActiveObject.hpp HTTP/1.1" 500 - "internal server error!"20 172.7.222.191 - - [10/Sep/2017:09:01:41] "GET /50x.html HTTP/1.1" 200 537 "http://localhost/" "MyBrowser-xx" "-"21 72.7.0.1 - - [10/Sep/2017:09:01:43] "GET /CacheLine.ut.cpp HTTP/1.1" 200 2185 "http://localhost/" "MyBrowser-xx" "-"22 55.3.1.3 - - [10/Sep/2017:09:01:45] "GET /Provider.ut.cpp HTTP/1.1" 200 2689 "http://localhost/" "MyBrowser-xx" "-"23 72.7.0.1 - - [10/Sep/2017:09:01:31] "GET /ActiveObject.ut.cpp HTTP/1.1" 200 1107 "http://localhost/" "MyBrowser-xx" "-"24 72.7.0.1 - - [10/Sep/2017:09:01:33] "GET /Fifo.hpp HTTP/1.1" 200 3754 "http://localhost/" "MyBrowser-xx" "-"25 72.7.0.1 - - [10/Sep/2017:09:01:34] "GET /LockProxy.hpp HTTP/1.1" 200 1201 "http://localhost/" "MyBrowser-xx" "-"26 72.7.0.1 - - [10/Sep/2017:09:01:34] "GET /CacheLine.ut.cpp HTTP/1.1" 200 2185 "http://localhost/" "MyBrowser-xx" "-"
http://www.pd4pic.com/images/admittance-entry-prohibited-forbidden-not-allowed.png
![Page 41: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/41.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Any ideas?1 72.27.10.1 - - [10/Sep/2017:09:01:35] "GET /ThreadPool.ut.cpp HTTP/1.1" 200 4794 "http://localhost/" "MyBrowser-xx" "-"2 72.27.10.1 - - [10/Sep/2017:09:01:34] "Error processing /ThreadPool.ut.cpp - 404 - no such file of directory"3 72.27.10.1 - - [10/Sep/2017:09:01:34] "GET /CacheLine.ut.cpp HTTP/1.1" 200 2185 "http://localhost/" "MyBrowser-xx" "-"4 72.7.0.1 - - [10/Sep/2017:09:01:35] "GET /ThreadPool.ut.cpp HTTP/1.1" 200 4794 "http://localhost/" "MyBrowser-xx" "-"5 72.7.30.1 - - [10/Sep/2017:09:01:34] "Error processing /ThreadPool.ut.cpp - 404 - no such file of directory"6 72.17.0.221 - - [10/Sep/2017:09:01:28] "GET / HTTP/1.1" 200 2721 "-" "MyBrowser-xx" "-"7 72.7.0.1 - - [10/Sep/2017:09:01:31] "GET /ActiveObject.ut.cpp HTTP/1.1" 200 1107 "http://localhost/" "MyBrowser-xx" "-"8 72.7.0.1 - - [10/Sep/2017:09:01:33] "GET /Fifo.hpp HTTP/1.1" 200 3754 "http://localhost/" "MyBrowser-xx" "-"9 72.7.0.1 - - [10/Sep/2017:09:01:31] "GET /ActiveObject.ut.cpp HTTP/1.1" 200 1107 "http://localhost/" "MyBrowser-xx" "-"
10 72.7.0.1 - - [10/Sep/2017:09:01:33] "GET /Fifo.hpp HTTP/1.1" 200 3754 "http://localhost/" "MyBrowser-xx" "-"11 1.32.0.1 - - [10/Sep/2017:09:01:34] "GET /Provider.hpp HTTP/1.1" 200 1201 "http://localhost/" "MyBrowser-xx" "-"12 172.227.10.1 - - [10/Sep/2017:09:01:34] "GET /CacheLine.ut.cpp HTTP/1.1" 200 2185 "http://localhost/" "MyBrowser-xx" "-"13 72.7.0.1 - - [10/Sep/2017:09:01:35] "GET /ThreadPool.ut.cpp HTTP/1.1" 200 4794 "http://localhost/" "MyBrowser-xx" "-"14 72.7.0.1 - - [10/Sep/2017:09:01:34] "Error processing /ThreadPool.ut.cpp - 404 - no such file of directory"15 42.1.2.4 - - [10/Sep/2017:09:01:34] "GET /CacheLine.ut.cpp HTTP/1.1" 200 2185 "http://localhost/" "MyBrowser-xx" "-"16 72.7.0.1 - - [10/Sep/2017:09:01:35] "GET /ThreadPool.ut.cpp HTTP/1.1" 200 4794 "http://localhost/" "MyBrowser-xx" "-"17 72.7.0.1 - - [10/Sep/2017:09:01:36] "GET /JoiningThread.ut.cpp HTTP/1.1" 200 2099 "http://localhost/" "MyBrowser-xx" "-"18 72.7.0.1 - - [10/Sep/2017:09:01:37] "GET /ThreadsCount.hpp HTTP/1.1" 200 474 "http://localhost/" "MyBrowser-xx" "-"19 72.7.0.1 - - [10/Sep/2017:09:01:40] "GET /ActiveObject.hpp HTTP/1.1" 500 - "internal server error!"20 172.7.222.191 - - [10/Sep/2017:09:01:41] "GET /50x.html HTTP/1.1" 200 537 "http://localhost/" "MyBrowser-xx" "-"21 72.7.0.1 - - [10/Sep/2017:09:01:43] "GET /CacheLine.ut.cpp HTTP/1.1" 200 2185 "http://localhost/" "MyBrowser-xx" "-"22 55.3.1.3 - - [10/Sep/2017:09:01:45] "GET /Provider.ut.cpp HTTP/1.1" 200 2689 "http://localhost/" "MyBrowser-xx" "-"23 72.7.0.1 - - [10/Sep/2017:09:01:31] "GET /ActiveObject.ut.cpp HTTP/1.1" 200 1107 "http://localhost/" "MyBrowser-xx" "-"24 72.7.0.1 - - [10/Sep/2017:09:01:33] "GET /Fifo.hpp HTTP/1.1" 200 3754 "http://localhost/" "MyBrowser-xx" "-"25 72.7.0.1 - - [10/Sep/2017:09:01:34] "GET /LockProxy.hpp HTTP/1.1" 200 1201 "http://localhost/" "MyBrowser-xx" "-"26 72.7.0.1 - - [10/Sep/2017:09:01:34] "GET /CacheLine.ut.cpp HTTP/1.1" 200 2185 "http://localhost/" "MyBrowser-xx" "-"
http://www.pd4pic.com/images/admittance-entry-prohibited-forbidden-not-allowed.png
![Page 42: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/42.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Any ideas?1 72.27.10.1 - - [10/Sep/2017:09:01:35] "GET /ThreadPool.ut.cpp HTTP/1.1" 200 4794 "http://localhost/" "MyBrowser-xx" "-"2 72.27.10.1 - - [10/Sep/2017:09:01:34] "Error processing /ThreadPool.ut.cpp - 404 - no such file of directory"3 72.27.10.1 - - [10/Sep/2017:09:01:34] "GET /CacheLine.ut.cpp HTTP/1.1" 200 2185 "http://localhost/" "MyBrowser-xx" "-"4 72.7.0.1 - - [10/Sep/2017:09:01:35] "GET /ThreadPool.ut.cpp HTTP/1.1" 200 4794 "http://localhost/" "MyBrowser-xx" "-"5 72.7.30.1 - - [10/Sep/2017:09:01:34] "Error processing /ThreadPool.ut.cpp - 404 - no such file of directory"6 72.17.0.221 - - [10/Sep/2017:09:01:28] "GET / HTTP/1.1" 200 2721 "-" "MyBrowser-xx" "-"7 72.7.0.1 - - [10/Sep/2017:09:01:31] "GET /ActiveObject.ut.cpp HTTP/1.1" 200 1107 "http://localhost/" "MyBrowser-xx" "-"8 72.7.0.1 - - [10/Sep/2017:09:01:33] "GET /Fifo.hpp HTTP/1.1" 200 3754 "http://localhost/" "MyBrowser-xx" "-"9 72.7.0.1 - - [10/Sep/2017:09:01:31] "GET /ActiveObject.ut.cpp HTTP/1.1" 200 1107 "http://localhost/" "MyBrowser-xx" "-"
10 72.7.0.1 - - [10/Sep/2017:09:01:33] "GET /Fifo.hpp HTTP/1.1" 200 3754 "http://localhost/" "MyBrowser-xx" "-"11 1.32.0.1 - - [10/Sep/2017:09:01:34] "GET /Provider.hpp HTTP/1.1" 200 1201 "http://localhost/" "MyBrowser-xx" "-"12 172.227.10.1 - - [10/Sep/2017:09:01:34] "GET /CacheLine.ut.cpp HTTP/1.1" 200 2185 "http://localhost/" "MyBrowser-xx" "-"13 72.7.0.1 - - [10/Sep/2017:09:01:35] "GET /ThreadPool.ut.cpp HTTP/1.1" 200 4794 "http://localhost/" "MyBrowser-xx" "-"14 72.7.0.1 - - [10/Sep/2017:09:01:34] "Error processing /ThreadPool.ut.cpp - 404 - no such file of directory"15 42.1.2.4 - - [10/Sep/2017:09:01:34] "GET /CacheLine.ut.cpp HTTP/1.1" 200 2185 "http://localhost/" "MyBrowser-xx" "-"16 72.7.0.1 - - [10/Sep/2017:09:01:35] "GET /ThreadPool.ut.cpp HTTP/1.1" 200 4794 "http://localhost/" "MyBrowser-xx" "-"17 72.7.0.1 - - [10/Sep/2017:09:01:36] "GET /JoiningThread.ut.cpp HTTP/1.1" 200 2099 "http://localhost/" "MyBrowser-xx" "-"18 72.7.0.1 - - [10/Sep/2017:09:01:37] "GET /ThreadsCount.hpp HTTP/1.1" 200 474 "http://localhost/" "MyBrowser-xx" "-"19 72.7.0.1 - - [10/Sep/2017:09:01:40] "GET /ActiveObject.hpp HTTP/1.1" 500 - "internal server error!"20 172.7.222.191 - - [10/Sep/2017:09:01:41] "GET /50x.html HTTP/1.1" 200 537 "http://localhost/" "MyBrowser-xx" "-"21 72.7.0.1 - - [10/Sep/2017:09:01:43] "GET /CacheLine.ut.cpp HTTP/1.1" 200 2185 "http://localhost/" "MyBrowser-xx" "-"22 55.3.1.3 - - [10/Sep/2017:09:01:45] "GET /Provider.ut.cpp HTTP/1.1" 200 2689 "http://localhost/" "MyBrowser-xx" "-"23 72.7.0.1 - - [10/Sep/2017:09:01:31] "GET /ActiveObject.ut.cpp HTTP/1.1" 200 1107 "http://localhost/" "MyBrowser-xx" "-"24 72.7.0.1 - - [10/Sep/2017:09:01:33] "GET /Fifo.hpp HTTP/1.1" 200 3754 "http://localhost/" "MyBrowser-xx" "-"25 72.7.0.1 - - [10/Sep/2017:09:01:34] "GET /LockProxy.hpp HTTP/1.1" 200 1201 "http://localhost/" "MyBrowser-xx" "-"26 72.7.0.1 - - [10/Sep/2017:09:01:34] "GET /CacheLine.ut.cpp HTTP/1.1" 200 2185 "http://localhost/" "MyBrowser-xx" "-"
http://www.pd4pic.com/images/admittance-entry-prohibited-forbidden-not-allowed.png
![Page 43: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/43.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Data structure!
![Page 44: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/44.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
![Page 45: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/45.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
System activity log
1 {2 "timestamp": "2017-03-14T11:12:13Z",3 "priority": "warning",4 "process": "foo-bar daemon",5 "thread": "42",6 "message": "CPU 3 is overheating!"7 }
1 Common fields2 User-defined message
![Page 46: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/46.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
System activity log
1 {2 "timestamp": "2017-03-14T11:12:13Z",3 "priority": "warning",4 "process": "foo-bar daemon",5 "thread": "42",6 "message": "CPU 3 is overheating!"7 }
1 Common fields2 User-defined message
![Page 47: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/47.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
System activity log
1 {2 "timestamp": "2017-03-14T11:12:13Z",3 "priority": "warning",4 "process": "foo-bar daemon",5 "thread": "42",6 "message": "CPU 3 is overheating!"7 }
1 Common fields2 User-defined message
![Page 48: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/48.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Typical logger
![Page 49: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/49.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
stream-like?
1 myLog << "hello! the answer is:"2 << answer << ", i guess...";
Where is the end?See a typo?What is the output? (int answer=42)
1 hello! the answer is:2a, i guess...2 hello! the answer is:0x2a, i guess...3 hello! the answer is:052, i guess...4 etc. . . :/
Translations? :/https://image.spreadshirtmedia.com/image-server/v1/compositions/1009027141/views/1,width=300,height=300,appearanceId=231,version=1461139005/where-s-your-god-now-women-s-t-shirts-women-s-t-shirt.jpg
![Page 50: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/50.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
stream-like?
1 myLog << "hello! the answer is:"2 << answer << ", i guess...";
Where is the end?
See a typo?What is the output? (int answer=42)
1 hello! the answer is:2a, i guess...2 hello! the answer is:0x2a, i guess...3 hello! the answer is:052, i guess...4 etc. . . :/
Translations? :/https://image.spreadshirtmedia.com/image-server/v1/compositions/1009027141/views/1,width=300,height=300,appearanceId=231,version=1461139005/where-s-your-god-now-women-s-t-shirts-women-s-t-shirt.jpg
![Page 51: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/51.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
stream-like?
1 myLog << "hello! the answer is:"2 << answer << ", i guess...";
Where is the end?See a typo?
What is the output? (int answer=42)1 hello! the answer is:2a, i guess...2 hello! the answer is:0x2a, i guess...3 hello! the answer is:052, i guess...4 etc. . . :/
Translations? :/https://image.spreadshirtmedia.com/image-server/v1/compositions/1009027141/views/1,width=300,height=300,appearanceId=231,version=1461139005/where-s-your-god-now-women-s-t-shirts-women-s-t-shirt.jpg
![Page 52: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/52.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
stream-like?
1 myLog << "hello! the answer is:"2 << answer << ", i guess...";
Where is the end?See a typo? Spaces, spaces. . .
What is the output? (int answer=42)1 hello! the answer is:2a, i guess...2 hello! the answer is:0x2a, i guess...3 hello! the answer is:052, i guess...4 etc. . . :/
Translations? :/https://image.spreadshirtmedia.com/image-server/v1/compositions/1009027141/views/1,width=300,height=300,appearanceId=231,version=1461139005/where-s-your-god-now-women-s-t-shirts-women-s-t-shirt.jpg
![Page 53: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/53.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
stream-like?
1 myLog << "hello! the answer is:"2 << answer << ", i guess...";
Where is the end?See a typo? Spaces, spaces. . .What is the output? (int answer=42)
1 hello! the answer is:2a, i guess...2 hello! the answer is:0x2a, i guess...3 hello! the answer is:052, i guess...4 etc. . . :/
Translations? :/https://image.spreadshirtmedia.com/image-server/v1/compositions/1009027141/views/1,width=300,height=300,appearanceId=231,version=1461139005/where-s-your-god-now-women-s-t-shirts-women-s-t-shirt.jpg
![Page 54: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/54.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
stream-like?
1 myLog << "hello! the answer is:"2 << answer << ", i guess...";
Where is the end?See a typo? Spaces, spaces. . .What is the output? (int answer=42)
1 hello! the answer is:2a, i guess...
2 hello! the answer is:0x2a, i guess...3 hello! the answer is:052, i guess...4 etc. . . :/
Translations? :/https://image.spreadshirtmedia.com/image-server/v1/compositions/1009027141/views/1,width=300,height=300,appearanceId=231,version=1461139005/where-s-your-god-now-women-s-t-shirts-women-s-t-shirt.jpg
![Page 55: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/55.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
stream-like?
1 myLog << "hello! the answer is:"2 << answer << ", i guess...";
Where is the end?See a typo? Spaces, spaces. . .What is the output? (int answer=42)
1 hello! the answer is:2a, i guess...2 hello! the answer is:0x2a, i guess...
3 hello! the answer is:052, i guess...4 etc. . . :/
Translations? :/https://image.spreadshirtmedia.com/image-server/v1/compositions/1009027141/views/1,width=300,height=300,appearanceId=231,version=1461139005/where-s-your-god-now-women-s-t-shirts-women-s-t-shirt.jpg
![Page 56: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/56.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
stream-like?
1 myLog << "hello! the answer is:"2 << answer << ", i guess...";
Where is the end?See a typo? Spaces, spaces. . .What is the output? (int answer=42)
1 hello! the answer is:2a, i guess...2 hello! the answer is:0x2a, i guess...3 hello! the answer is:052, i guess...
4 etc. . . :/
Translations? :/https://image.spreadshirtmedia.com/image-server/v1/compositions/1009027141/views/1,width=300,height=300,appearanceId=231,version=1461139005/where-s-your-god-now-women-s-t-shirts-women-s-t-shirt.jpg
![Page 57: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/57.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
stream-like?
1 myLog << "hello! the answer is:"2 << answer << ", i guess...";
Where is the end?See a typo? Spaces, spaces. . .What is the output? (int answer=42)
1 hello! the answer is:2a, i guess...2 hello! the answer is:0x2a, i guess...3 hello! the answer is:052, i guess...4 etc. . . :/
Translations? :/https://image.spreadshirtmedia.com/image-server/v1/compositions/1009027141/views/1,width=300,height=300,appearanceId=231,version=1461139005/where-s-your-god-now-women-s-t-shirts-women-s-t-shirt.jpg
![Page 58: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/58.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
stream-like?
1 myLog << "hello! the answer is:"2 << answer << ", i guess...";
Where is the end?See a typo? Spaces, spaces. . .What is the output? (int answer=42)
1 hello! the answer is:2a, i guess...2 hello! the answer is:0x2a, i guess...3 hello! the answer is:052, i guess...4 etc. . . :/
Translations? :/https://image.spreadshirtmedia.com/image-server/v1/compositions/1009027141/views/1,width=300,height=300,appearanceId=231,version=1461139005/where-s-your-god-now-women-s-t-shirts-women-s-t-shirt.jpg
![Page 59: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/59.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
printf-like?
1 log("hello! the answer is: %s, i guess...",2 answer);
See a bug?
Runtime-parse of compile-time known format
"Accidental" type erasure. . .
No support for non-standard types :/
Tried printf with templates? ;)
Variadic templates? Close, but. . .
https://i.pinimg.com/736x/6d/dd/19/6ddd19ba7a71a85f6434251e3dd6e8f9.jpg
![Page 60: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/60.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
printf-like?
1 log("hello! the answer is: %s, i guess...",2 answer);
See a bug?
Runtime-parse of compile-time known format
"Accidental" type erasure. . .
No support for non-standard types :/
Tried printf with templates? ;)
Variadic templates? Close, but. . .
https://i.pinimg.com/736x/6d/dd/19/6ddd19ba7a71a85f6434251e3dd6e8f9.jpg
![Page 61: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/61.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
printf-like?
1 log("hello! the answer is: %s, i guess...",2 answer);
See a bug?
Runtime-parse of compile-time known format
"Accidental" type erasure. . .
No support for non-standard types :/
Tried printf with templates? ;)
Variadic templates? Close, but. . .
https://i.pinimg.com/736x/6d/dd/19/6ddd19ba7a71a85f6434251e3dd6e8f9.jpg
![Page 62: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/62.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
printf-like?
1 log("hello! the answer is: %s, i guess...",2 answer);
See a bug?
Runtime-parse of compile-time known format
"Accidental" type erasure. . .
No support for non-standard types :/
Tried printf with templates? ;)
Variadic templates? Close, but. . .
https://i.pinimg.com/736x/6d/dd/19/6ddd19ba7a71a85f6434251e3dd6e8f9.jpg
![Page 63: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/63.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
printf-like?
1 log("hello! the answer is: %s, i guess...",2 answer);
See a bug? Incompatible types!
Runtime-parse of compile-time known format
"Accidental" type erasure. . .
No support for non-standard types :/
Tried printf with templates? ;)
Variadic templates? Close, but. . .
https://i.pinimg.com/736x/6d/dd/19/6ddd19ba7a71a85f6434251e3dd6e8f9.jpg
![Page 64: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/64.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
printf-like?
1 log("hello! the answer is: %s, i guess...",2 answer);
See a bug? Incompatible types!
Runtime-parse of compile-time known format
"Accidental" type erasure. . .
No support for non-standard types :/
Tried printf with templates? ;)
Variadic templates? Close, but. . .
https://i.pinimg.com/736x/6d/dd/19/6ddd19ba7a71a85f6434251e3dd6e8f9.jpg
![Page 65: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/65.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
printf-like?
1 log("hello! the answer is: %s, i guess...",2 answer);
See a bug? Incompatible types!
Runtime-parse of compile-time known format
"Accidental" type erasure. . .
No support for non-standard types :/
Tried printf with templates? ;)
Variadic templates? Close, but. . .
https://i.pinimg.com/736x/6d/dd/19/6ddd19ba7a71a85f6434251e3dd6e8f9.jpg
![Page 66: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/66.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
printf-like?
1 log("hello! the answer is: %s, i guess...",2 answer);
See a bug? Incompatible types!
Runtime-parse of compile-time known format
"Accidental" type erasure. . .
No support for non-standard types :/
Tried printf with templates? ;)
Variadic templates? Close, but. . .
https://i.pinimg.com/736x/6d/dd/19/6ddd19ba7a71a85f6434251e3dd6e8f9.jpg
![Page 67: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/67.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
printf-like?
1 log("hello! the answer is: %s, i guess...",2 answer);
See a bug? Incompatible types!
Runtime-parse of compile-time known format
"Accidental" type erasure. . .
No support for non-standard types :/
Tried printf with templates? ;)
Variadic templates? Close, but. . .
https://i.pinimg.com/736x/6d/dd/19/6ddd19ba7a71a85f6434251e3dd6e8f9.jpg
![Page 68: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/68.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Output?
1 72.27.10.1 - - [10/Sep/2017:09:01:35] "GET /ThreadPool.ut.cpp HTTP/1.1" 200 4794 "http://localhost/" "MyBrowser-xx" "-"2 72.27.10.1 - - [10/Sep/2017:09:01:34] "Error processing /ThreadPool.ut.cpp - 404 - no such file of directory"3 72.27.10.1 - - [10/Sep/2017:09:01:34] "GET /CacheLine.ut.cpp HTTP/1.1" 200 2185 "http://localhost/" "MyBrowser-xx" "-"4 72.7.0.1 - - [10/Sep/2017:09:01:35] "GET /ThreadPool.ut.cpp HTTP/1.1" 200 4794 "http://localhost/" "MyBrowser-xx" "-"5 72.7.30.1 - - [10/Sep/2017:09:01:34] "Error processing /ThreadPool.ut.cpp - 404 - no such file of directory"6 72.17.0.221 - - [10/Sep/2017:09:01:28] "GET / HTTP/1.1" 200 2721 "-" "MyBrowser-xx" "-"7 72.7.0.1 - - [10/Sep/2017:09:01:31] "GET /ActiveObject.ut.cpp HTTP/1.1" 200 1107 "http://localhost/" "MyBrowser-xx" "-"8 72.7.0.1 - - [10/Sep/2017:09:01:33] "GET /Fifo.hpp HTTP/1.1" 200 3754 "http://localhost/" "MyBrowser-xx" "-"9 72.7.0.1 - - [10/Sep/2017:09:01:31] "GET /ActiveObject.ut.cpp HTTP/1.1" 200 1107 "http://localhost/" "MyBrowser-xx" "-"
10 72.7.0.1 - - [10/Sep/2017:09:01:33] "GET /Fifo.hpp HTTP/1.1" 200 3754 "http://localhost/" "MyBrowser-xx" "-"11 1.32.0.1 - - [10/Sep/2017:09:01:34] "GET /Provider.hpp HTTP/1.1" 200 1201 "http://localhost/" "MyBrowser-xx" "-"12 172.227.10.1 - - [10/Sep/2017:09:01:34] "GET /CacheLine.ut.cpp HTTP/1.1" 200 2185 "http://localhost/" "MyBrowser-xx" "-"13 72.7.0.1 - - [10/Sep/2017:09:01:35] "GET /ThreadPool.ut.cpp HTTP/1.1" 200 4794 "http://localhost/" "MyBrowser-xx" "-"14 72.7.0.1 - - [10/Sep/2017:09:01:34] "Error processing /ThreadPool.ut.cpp - 404 - no such file of directory"15 42.1.2.4 - - [10/Sep/2017:09:01:34] "GET /CacheLine.ut.cpp HTTP/1.1" 200 2185 "http://localhost/" "MyBrowser-xx" "-"16 72.7.0.1 - - [10/Sep/2017:09:01:35] "GET /ThreadPool.ut.cpp HTTP/1.1" 200 4794 "http://localhost/" "MyBrowser-xx" "-"17 72.7.0.1 - - [10/Sep/2017:09:01:36] "GET /JoiningThread.ut.cpp HTTP/1.1" 200 2099 "http://localhost/" "MyBrowser-xx" "-"18 72.7.0.1 - - [10/Sep/2017:09:01:37] "GET /ThreadsCount.hpp HTTP/1.1" 200 474 "http://localhost/" "MyBrowser-xx" "-"19 72.7.0.1 - - [10/Sep/2017:09:01:40] "GET /ActiveObject.hpp HTTP/1.1" 500 - "internal server error!"20 172.7.222.191 - - [10/Sep/2017:09:01:41] "GET /50x.html HTTP/1.1" 200 537 "http://localhost/" "MyBrowser-xx" "-"21 72.7.0.1 - - [10/Sep/2017:09:01:43] "GET /CacheLine.ut.cpp HTTP/1.1" 200 2185 "http://localhost/" "MyBrowser-xx" "-"22 55.3.1.3 - - [10/Sep/2017:09:01:45] "GET /Provider.ut.cpp HTTP/1.1" 200 2689 "http://localhost/" "MyBrowser-xx" "-"23 72.7.0.1 - - [10/Sep/2017:09:01:31] "GET /ActiveObject.ut.cpp HTTP/1.1" 200 1107 "http://localhost/" "MyBrowser-xx" "-"24 72.7.0.1 - - [10/Sep/2017:09:01:33] "GET /Fifo.hpp HTTP/1.1" 200 3754 "http://localhost/" "MyBrowser-xx" "-"25 72.7.0.1 - - [10/Sep/2017:09:01:34] "GET /LockProxy.hpp HTTP/1.1" 200 1201 "http://localhost/" "MyBrowser-xx" "-"26 72.7.0.1 - - [10/Sep/2017:09:01:34] "GET /CacheLine.ut.cpp HTTP/1.1" 200 2185 "http://localhost/" "MyBrowser-xx" "-"
http://windsorite.ca/wp-content/uploads/2016/09/20160930-153449-640x427.jpghttps://imgflip.com/i/1yf2il
![Page 69: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/69.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Output?1 72.27.10.1 - - [10/Sep/2017:09:01:35] "GET /ThreadPool.ut.cpp HTTP/1.1" 200 4794 "http://localhost/" "MyBrowser-xx" "-"2 72.27.10.1 - - [10/Sep/2017:09:01:34] "Error processing /ThreadPool.ut.cpp - 404 - no such file of directory"3 72.27.10.1 - - [10/Sep/2017:09:01:34] "GET /CacheLine.ut.cpp HTTP/1.1" 200 2185 "http://localhost/" "MyBrowser-xx" "-"4 72.7.0.1 - - [10/Sep/2017:09:01:35] "GET /ThreadPool.ut.cpp HTTP/1.1" 200 4794 "http://localhost/" "MyBrowser-xx" "-"5 72.7.30.1 - - [10/Sep/2017:09:01:34] "Error processing /ThreadPool.ut.cpp - 404 - no such file of directory"6 72.17.0.221 - - [10/Sep/2017:09:01:28] "GET / HTTP/1.1" 200 2721 "-" "MyBrowser-xx" "-"7 72.7.0.1 - - [10/Sep/2017:09:01:31] "GET /ActiveObject.ut.cpp HTTP/1.1" 200 1107 "http://localhost/" "MyBrowser-xx" "-"8 72.7.0.1 - - [10/Sep/2017:09:01:33] "GET /Fifo.hpp HTTP/1.1" 200 3754 "http://localhost/" "MyBrowser-xx" "-"9 72.7.0.1 - - [10/Sep/2017:09:01:31] "GET /ActiveObject.ut.cpp HTTP/1.1" 200 1107 "http://localhost/" "MyBrowser-xx" "-"
10 72.7.0.1 - - [10/Sep/2017:09:01:33] "GET /Fifo.hpp HTTP/1.1" 200 3754 "http://localhost/" "MyBrowser-xx" "-"11 1.32.0.1 - - [10/Sep/2017:09:01:34] "GET /Provider.hpp HTTP/1.1" 200 1201 "http://localhost/" "MyBrowser-xx" "-"12 172.227.10.1 - - [10/Sep/2017:09:01:34] "GET /CacheLine.ut.cpp HTTP/1.1" 200 2185 "http://localhost/" "MyBrowser-xx" "-"13 72.7.0.1 - - [10/Sep/2017:09:01:35] "GET /ThreadPool.ut.cpp HTTP/1.1" 200 4794 "http://localhost/" "MyBrowser-xx" "-"14 72.7.0.1 - - [10/Sep/2017:09:01:34] "Error processing /ThreadPool.ut.cpp - 404 - no such file of directory"15 42.1.2.4 - - [10/Sep/2017:09:01:34] "GET /CacheLine.ut.cpp HTTP/1.1" 200 2185 "http://localhost/" "MyBrowser-xx" "-"16 72.7.0.1 - - [10/Sep/2017:09:01:35] "GET /ThreadPool.ut.cpp HTTP/1.1" 200 4794 "http://localhost/" "MyBrowser-xx" "-"17 72.7.0.1 - - [10/Sep/2017:09:01:36] "GET /JoiningThread.ut.cpp HTTP/1.1" 200 2099 "http://localhost/" "MyBrowser-xx" "-"18 72.7.0.1 - - [10/Sep/2017:09:01:37] "GET /ThreadsCount.hpp HTTP/1.1" 200 474 "http://localhost/" "MyBrowser-xx" "-"19 72.7.0.1 - - [10/Sep/2017:09:01:40] "GET /ActiveObject.hpp HTTP/1.1" 500 - "internal server error!"20 172.7.222.191 - - [10/Sep/2017:09:01:41] "GET /50x.html HTTP/1.1" 200 537 "http://localhost/" "MyBrowser-xx" "-"21 72.7.0.1 - - [10/Sep/2017:09:01:43] "GET /CacheLine.ut.cpp HTTP/1.1" 200 2185 "http://localhost/" "MyBrowser-xx" "-"22 55.3.1.3 - - [10/Sep/2017:09:01:45] "GET /Provider.ut.cpp HTTP/1.1" 200 2689 "http://localhost/" "MyBrowser-xx" "-"23 72.7.0.1 - - [10/Sep/2017:09:01:31] "GET /ActiveObject.ut.cpp HTTP/1.1" 200 1107 "http://localhost/" "MyBrowser-xx" "-"24 72.7.0.1 - - [10/Sep/2017:09:01:33] "GET /Fifo.hpp HTTP/1.1" 200 3754 "http://localhost/" "MyBrowser-xx" "-"25 72.7.0.1 - - [10/Sep/2017:09:01:34] "GET /LockProxy.hpp HTTP/1.1" 200 1201 "http://localhost/" "MyBrowser-xx" "-"26 72.7.0.1 - - [10/Sep/2017:09:01:34] "GET /CacheLine.ut.cpp HTTP/1.1" 200 2185 "http://localhost/" "MyBrowser-xx" "-"
http://windsorite.ca/wp-content/uploads/2016/09/20160930-153449-640x427.jpghttps://imgflip.com/i/1yf2il
![Page 70: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/70.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Output?1 72.27.10.1 - - [10/Sep/2017:09:01:35] "GET /ThreadPool.ut.cpp HTTP/1.1" 200 4794 "http://localhost/" "MyBrowser-xx" "-"2 72.27.10.1 - - [10/Sep/2017:09:01:34] "Error processing /ThreadPool.ut.cpp - 404 - no such file of directory"3 72.27.10.1 - - [10/Sep/2017:09:01:34] "GET /CacheLine.ut.cpp HTTP/1.1" 200 2185 "http://localhost/" "MyBrowser-xx" "-"4 72.7.0.1 - - [10/Sep/2017:09:01:35] "GET /ThreadPool.ut.cpp HTTP/1.1" 200 4794 "http://localhost/" "MyBrowser-xx" "-"5 72.7.30.1 - - [10/Sep/2017:09:01:34] "Error processing /ThreadPool.ut.cpp - 404 - no such file of directory"6 72.17.0.221 - - [10/Sep/2017:09:01:28] "GET / HTTP/1.1" 200 2721 "-" "MyBrowser-xx" "-"7 72.7.0.1 - - [10/Sep/2017:09:01:31] "GET /ActiveObject.ut.cpp HTTP/1.1" 200 1107 "http://localhost/" "MyBrowser-xx" "-"8 72.7.0.1 - - [10/Sep/2017:09:01:33] "GET /Fifo.hpp HTTP/1.1" 200 3754 "http://localhost/" "MyBrowser-xx" "-"9 72.7.0.1 - - [10/Sep/2017:09:01:31] "GET /ActiveObject.ut.cpp HTTP/1.1" 200 1107 "http://localhost/" "MyBrowser-xx" "-"
10 72.7.0.1 - - [10/Sep/2017:09:01:33] "GET /Fifo.hpp HTTP/1.1" 200 3754 "http://localhost/" "MyBrowser-xx" "-"11 1.32.0.1 - - [10/Sep/2017:09:01:34] "GET /Provider.hpp HTTP/1.1" 200 1201 "http://localhost/" "MyBrowser-xx" "-"12 172.227.10.1 - - [10/Sep/2017:09:01:34] "GET /CacheLine.ut.cpp HTTP/1.1" 200 2185 "http://localhost/" "MyBrowser-xx" "-"13 72.7.0.1 - - [10/Sep/2017:09:01:35] "GET /ThreadPool.ut.cpp HTTP/1.1" 200 4794 "http://localhost/" "MyBrowser-xx" "-"14 72.7.0.1 - - [10/Sep/2017:09:01:34] "Error processing /ThreadPool.ut.cpp - 404 - no such file of directory"15 42.1.2.4 - - [10/Sep/2017:09:01:34] "GET /CacheLine.ut.cpp HTTP/1.1" 200 2185 "http://localhost/" "MyBrowser-xx" "-"16 72.7.0.1 - - [10/Sep/2017:09:01:35] "GET /ThreadPool.ut.cpp HTTP/1.1" 200 4794 "http://localhost/" "MyBrowser-xx" "-"17 72.7.0.1 - - [10/Sep/2017:09:01:36] "GET /JoiningThread.ut.cpp HTTP/1.1" 200 2099 "http://localhost/" "MyBrowser-xx" "-"18 72.7.0.1 - - [10/Sep/2017:09:01:37] "GET /ThreadsCount.hpp HTTP/1.1" 200 474 "http://localhost/" "MyBrowser-xx" "-"19 72.7.0.1 - - [10/Sep/2017:09:01:40] "GET /ActiveObject.hpp HTTP/1.1" 500 - "internal server error!"20 172.7.222.191 - - [10/Sep/2017:09:01:41] "GET /50x.html HTTP/1.1" 200 537 "http://localhost/" "MyBrowser-xx" "-"21 72.7.0.1 - - [10/Sep/2017:09:01:43] "GET /CacheLine.ut.cpp HTTP/1.1" 200 2185 "http://localhost/" "MyBrowser-xx" "-"22 55.3.1.3 - - [10/Sep/2017:09:01:45] "GET /Provider.ut.cpp HTTP/1.1" 200 2689 "http://localhost/" "MyBrowser-xx" "-"23 72.7.0.1 - - [10/Sep/2017:09:01:31] "GET /ActiveObject.ut.cpp HTTP/1.1" 200 1107 "http://localhost/" "MyBrowser-xx" "-"24 72.7.0.1 - - [10/Sep/2017:09:01:33] "GET /Fifo.hpp HTTP/1.1" 200 3754 "http://localhost/" "MyBrowser-xx" "-"25 72.7.0.1 - - [10/Sep/2017:09:01:34] "GET /LockProxy.hpp HTTP/1.1" 200 1201 "http://localhost/" "MyBrowser-xx" "-"26 72.7.0.1 - - [10/Sep/2017:09:01:34] "GET /CacheLine.ut.cpp HTTP/1.1" 200 2185 "http://localhost/" "MyBrowser-xx" "-"
http://windsorite.ca/wp-content/uploads/2016/09/20160930-153449-640x427.jpghttps://imgflip.com/i/1yf2il
![Page 71: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/71.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Output?1 72.27.10.1 - - [10/Sep/2017:09:01:35] "GET /ThreadPool.ut.cpp HTTP/1.1" 200 4794 "http://localhost/" "MyBrowser-xx" "-"2 72.27.10.1 - - [10/Sep/2017:09:01:34] "Error processing /ThreadPool.ut.cpp - 404 - no such file of directory"3 72.27.10.1 - - [10/Sep/2017:09:01:34] "GET /CacheLine.ut.cpp HTTP/1.1" 200 2185 "http://localhost/" "MyBrowser-xx" "-"4 72.7.0.1 - - [10/Sep/2017:09:01:35] "GET /ThreadPool.ut.cpp HTTP/1.1" 200 4794 "http://localhost/" "MyBrowser-xx" "-"5 72.7.30.1 - - [10/Sep/2017:09:01:34] "Error processing /ThreadPool.ut.cpp - 404 - no such file of directory"6 72.17.0.221 - - [10/Sep/2017:09:01:28] "GET / HTTP/1.1" 200 2721 "-" "MyBrowser-xx" "-"7 72.7.0.1 - - [10/Sep/2017:09:01:31] "GET /ActiveObject.ut.cpp HTTP/1.1" 200 1107 "http://localhost/" "MyBrowser-xx" "-"8 72.7.0.1 - - [10/Sep/2017:09:01:33] "GET /Fifo.hpp HTTP/1.1" 200 3754 "http://localhost/" "MyBrowser-xx" "-"9 72.7.0.1 - - [10/Sep/2017:09:01:31] "GET /ActiveObject.ut.cpp HTTP/1.1" 200 1107 "http://localhost/" "MyBrowser-xx" "-"
10 72.7.0.1 - - [10/Sep/2017:09:01:33] "GET /Fifo.hpp HTTP/1.1" 200 3754 "http://localhost/" "MyBrowser-xx" "-"11 1.32.0.1 - - [10/Sep/2017:09:01:34] "GET /Provider.hpp HTTP/1.1" 200 1201 "http://localhost/" "MyBrowser-xx" "-"12 172.227.10.1 - - [10/Sep/2017:09:01:34] "GET /CacheLine.ut.cpp HTTP/1.1" 200 2185 "http://localhost/" "MyBrowser-xx" "-"13 72.7.0.1 - - [10/Sep/2017:09:01:35] "GET /ThreadPool.ut.cpp HTTP/1.1" 200 4794 "http://localhost/" "MyBrowser-xx" "-"14 72.7.0.1 - - [10/Sep/2017:09:01:34] "Error processing /ThreadPool.ut.cpp - 404 - no such file of directory"15 42.1.2.4 - - [10/Sep/2017:09:01:34] "GET /CacheLine.ut.cpp HTTP/1.1" 200 2185 "http://localhost/" "MyBrowser-xx" "-"16 72.7.0.1 - - [10/Sep/2017:09:01:35] "GET /ThreadPool.ut.cpp HTTP/1.1" 200 4794 "http://localhost/" "MyBrowser-xx" "-"17 72.7.0.1 - - [10/Sep/2017:09:01:36] "GET /JoiningThread.ut.cpp HTTP/1.1" 200 2099 "http://localhost/" "MyBrowser-xx" "-"18 72.7.0.1 - - [10/Sep/2017:09:01:37] "GET /ThreadsCount.hpp HTTP/1.1" 200 474 "http://localhost/" "MyBrowser-xx" "-"19 72.7.0.1 - - [10/Sep/2017:09:01:40] "GET /ActiveObject.hpp HTTP/1.1" 500 - "internal server error!"20 172.7.222.191 - - [10/Sep/2017:09:01:41] "GET /50x.html HTTP/1.1" 200 537 "http://localhost/" "MyBrowser-xx" "-"21 72.7.0.1 - - [10/Sep/2017:09:01:43] "GET /CacheLine.ut.cpp HTTP/1.1" 200 2185 "http://localhost/" "MyBrowser-xx" "-"22 55.3.1.3 - - [10/Sep/2017:09:01:45] "GET /Provider.ut.cpp HTTP/1.1" 200 2689 "http://localhost/" "MyBrowser-xx" "-"23 72.7.0.1 - - [10/Sep/2017:09:01:31] "GET /ActiveObject.ut.cpp HTTP/1.1" 200 1107 "http://localhost/" "MyBrowser-xx" "-"24 72.7.0.1 - - [10/Sep/2017:09:01:33] "GET /Fifo.hpp HTTP/1.1" 200 3754 "http://localhost/" "MyBrowser-xx" "-"25 72.7.0.1 - - [10/Sep/2017:09:01:34] "GET /LockProxy.hpp HTTP/1.1" 200 1201 "http://localhost/" "MyBrowser-xx" "-"26 72.7.0.1 - - [10/Sep/2017:09:01:34] "GET /CacheLine.ut.cpp HTTP/1.1" 200 2185 "http://localhost/" "MyBrowser-xx" "-"
http://windsorite.ca/wp-content/uploads/2016/09/20160930-153449-640x427.jpghttps://imgflip.com/i/1yf2il
![Page 72: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/72.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Idea
![Page 73: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/73.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Problems to solve
1 Uniform representation per type2 Machine-readable3 User-types supported4 Easy to use5 No "internal states"6 Compile-time checks7 Possible translations
http://blogs.solidworks.com/tech/wp-content/uploads/sites/4/fish-upgrade.jpg
![Page 74: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/74.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Problems to solve
1 Uniform representation per type
2 Machine-readable3 User-types supported4 Easy to use5 No "internal states"6 Compile-time checks7 Possible translations
http://blogs.solidworks.com/tech/wp-content/uploads/sites/4/fish-upgrade.jpg
![Page 75: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/75.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Problems to solve
1 Uniform representation per type2 Machine-readable
3 User-types supported4 Easy to use5 No "internal states"6 Compile-time checks7 Possible translations
http://blogs.solidworks.com/tech/wp-content/uploads/sites/4/fish-upgrade.jpg
![Page 76: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/76.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Problems to solve
1 Uniform representation per type2 Machine-readable3 User-types supported
4 Easy to use5 No "internal states"6 Compile-time checks7 Possible translations
http://blogs.solidworks.com/tech/wp-content/uploads/sites/4/fish-upgrade.jpg
![Page 77: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/77.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Problems to solve
1 Uniform representation per type2 Machine-readable3 User-types supported4 Easy to use
5 No "internal states"6 Compile-time checks7 Possible translations
http://blogs.solidworks.com/tech/wp-content/uploads/sites/4/fish-upgrade.jpg
![Page 78: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/78.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Problems to solve
1 Uniform representation per type2 Machine-readable3 User-types supported4 Easy to use5 No "internal states"
6 Compile-time checks7 Possible translations
http://blogs.solidworks.com/tech/wp-content/uploads/sites/4/fish-upgrade.jpg
![Page 79: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/79.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Problems to solve
1 Uniform representation per type2 Machine-readable3 User-types supported4 Easy to use5 No "internal states"6 Compile-time checks
7 Possible translations
http://blogs.solidworks.com/tech/wp-content/uploads/sites/4/fish-upgrade.jpg
![Page 80: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/80.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Problems to solve
1 Uniform representation per type2 Machine-readable3 User-types supported4 Easy to use5 No "internal states"6 Compile-time checks7 Possible translations
http://blogs.solidworks.com/tech/wp-content/uploads/sites/4/fish-upgrade.jpg
![Page 81: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/81.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Expected output
Structure-preserving
Machine-readable
Queryable!Examples:
JSONXMLBSONYML. . .
Text output? Bells and whistles. . .
![Page 82: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/82.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Expected output
Structure-preserving
Machine-readable
Queryable!Examples:
JSONXMLBSONYML. . .
Text output? Bells and whistles. . .
![Page 83: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/83.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Expected output
Structure-preserving
Machine-readable
Queryable!
Examples:JSONXMLBSONYML. . .
Text output? Bells and whistles. . .
![Page 84: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/84.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Expected output
Structure-preserving
Machine-readable
Queryable!
Examples:JSONXMLBSONYML. . .
Text output? Bells and whistles. . .
![Page 85: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/85.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Expected output
Structure-preserving
Machine-readable
Queryable!
Examples:JSONXMLBSONYML. . .
Text output? Bells and whistles. . .
![Page 86: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/86.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Expected output
Structure-preserving
Machine-readable
Queryable!
Examples:JSONXMLBSONYML. . .
Text output? Bells and whistles. . .
![Page 87: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/87.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Expected output
Structure-preserving
Machine-readable
Queryable!Examples:
JSONXMLBSONYML. . .
Text output? Bells and whistles. . .
![Page 88: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/88.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Expected output
Structure-preserving
Machine-readable
Queryable!Examples:
JSONXMLBSONYML. . .
Text output? Bells and whistles. . .
![Page 89: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/89.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
JSON output example
1 {2 "timestamp": 123314553,3 "pid": 1337,4 "priority": "warning",5 "element": {6 "CPU": 37 },8 "temperature": {9 "now": 79,
10 "normal": 75,11 "max": 8512 }13 }
![Page 90: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/90.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
JSON output example1 {2 "timestamp": 123314553,3 "pid": 1337,4 "priority": "warning",5 "element": {6 "CPU": 37 },8 "temperature": {9 "now": 79,
10 "normal": 75,11 "max": 8512 }13 }
![Page 91: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/91.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
The Difference
1 {2 "timestamp": 123314553,3 "pid": 1337,4 "priority": "warning",5 "message": "CPU 3 is
↪→ overheating! current↪→ temperature is 79,↪→ normal is up to 75;↪→ maximum temperature↪→ is 85"
6 }
1 {2 "timestamp": 123314553,3 "pid": 1337,4 "priority": "warning",5 "element": {6 "CPU": 37 },8 "temperature": {9 "now": 79,
10 "normal": 75,11 "max": 8512 }13 }
http://www.fitnessmash.com/wp-content/uploads/2015/01/What-does-that-even-mean-meme.jpg
![Page 92: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/92.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
The Difference1 {2 "timestamp": 123314553,3 "pid": 1337,4 "priority": "warning",5 "message": "CPU 3 is
↪→ overheating! current↪→ temperature is 79,↪→ normal is up to 75;↪→ maximum temperature↪→ is 85"
6 }
1 {2 "timestamp": 123314553,3 "pid": 1337,4 "priority": "warning",5 "element": {6 "CPU": 37 },8 "temperature": {9 "now": 79,
10 "normal": 75,11 "max": 8512 }13 }
http://www.fitnessmash.com/wp-content/uploads/2015/01/What-does-that-even-mean-meme.jpg
![Page 93: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/93.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
The Difference1 {2 "timestamp": 123314553,3 "pid": 1337,4 "priority": "warning",5 "message": "CPU 3 is
↪→ overheating! current↪→ temperature is 79,↪→ normal is up to 75;↪→ maximum temperature↪→ is 85"
6 }
1 {2 "timestamp": 123314553,3 "pid": 1337,4 "priority": "warning",5 "element": {6 "CPU": 37 },8 "temperature": {9 "now": 79,
10 "normal": 75,11 "max": 8512 }13 }
http://www.fitnessmash.com/wp-content/uploads/2015/01/What-does-that-even-mean-meme.jpg
![Page 94: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/94.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
The Difference1 {2 "timestamp": 123314553,3 "pid": 1337,4 "priority": "warning",5 "message": "CPU 3 is
↪→ overheating! current↪→ temperature is 79,↪→ normal is up to 75;↪→ maximum temperature↪→ is 85"
6 }
1 {2 "timestamp": 123314553,3 "pid": 1337,4 "priority": "warning",5 "element": {6 "CPU": 37 },8 "temperature": {9 "now": 79,
10 "normal": 75,11 "max": 8512 }13 }
http://www.fitnessmash.com/wp-content/uploads/2015/01/What-does-that-even-mean-meme.jpg
![Page 95: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/95.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
The Difference1 {2 "timestamp": 123314553,3 "pid": 1337,4 "priority": "warning",5 "message": "CPU 3 is
↪→ overheating! current↪→ temperature is 79,↪→ normal is up to 75;↪→ maximum temperature↪→ is 85"
6 }
1 {2 "timestamp": 123314553,3 "pid": 1337,4 "priority": "warning",5 "element": {6 "CPU": 37 },8 "temperature": {9 "now": 79,
10 "normal": 75,11 "max": 8512 }13 }
http://www.fitnessmash.com/wp-content/uploads/2015/01/What-does-that-even-mean-meme.jpg
![Page 96: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/96.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
The Difference1 {2 "timestamp": 123314553,3 "pid": 1337,4 "priority": "warning",5 "message": "CPU 3 is
↪→ overheating! current↪→ temperature is 79,↪→ normal is up to 75;↪→ maximum temperature↪→ is 85"
6 }
1 {2 "timestamp": 123314553,3 "pid": 1337,4 "priority": "warning",5 "element": {6 "CPU": 37 },8 "temperature": {9 "now": 79,
10 "normal": 75,11 "max": 8512 }13 }
http://media02.hongkiat.com/geek-products/IP-Address-Door-Mat-geek.jpg
![Page 97: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/97.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Possibilities1 Filtering2 Statistics3 Reacting (!)
1 {2 "timestamp": 1231234,3 "priority": "info",4 "pid": 4242,5 "path": "/images/924",6 "method": "GET",7 "response": {8 "status": 200,9 "processing_time_ms": 11
10 }11 }
![Page 98: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/98.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Possibilities1 Filtering2 Statistics3 Reacting (!)
1 {2 "timestamp": 1231234,3 "priority": "info",4 "pid": 4242,5 "path": "/images/924",6 "method": "GET",7 "response": {8 "status": 200,9 "processing_time_ms": 11
10 }11 }
![Page 99: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/99.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Possibilities1 Filtering2 Statistics3 Reacting (!)
1 {2 "timestamp": 1231234,3 "priority": "info",4 "pid": 4242,5 "path": "/images/924",6 "method": "GET",7 "response": {8 "status": 200,9 "processing_time_ms": 11
10 }11 }
![Page 100: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/100.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Possibilities1 Filtering2 Statistics3 Reacting (!)
1 {2 "timestamp": 1231234,3 "priority": "info",4 "pid": 4242,5 "path": "/images/924",6 "method": "GET",7 "response": {8 "status": 200,9 "processing_time_ms": 11
10 }11 }
![Page 101: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/101.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
API
![Page 102: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/102.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Simple log API
Raw argumentsNO explicit formatting
1 log( Timestamp{}, Pid{}, Pri::warning,2 // NOTE: optional text description3 HwElement::CPU_3,4 Temperature{getTemp(), 75, 85} );
Easy! :)Unified reprensetationAll taggedADL-based customization
http://f9india.com/images/Tower-Crane.png
![Page 103: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/103.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Simple log API
Raw argumentsNO explicit formatting
1 log( Timestamp{}, Pid{}, Pri::warning,2 // NOTE: optional text description3 HwElement::CPU_3,4 Temperature{getTemp(), 75, 85} );
Easy! :)Unified reprensetationAll taggedADL-based customization
http://f9india.com/images/Tower-Crane.png
![Page 104: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/104.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Simple log API
Raw argumentsNO explicit formatting
1 log( Timestamp{}, Pid{}, Pri::warning,2 // NOTE: optional text description3 HwElement::CPU_3,4 Temperature{getTemp(), 75, 85} );
Easy! :)Unified reprensetation
All taggedADL-based customization
http://f9india.com/images/Tower-Crane.png
![Page 105: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/105.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Simple log API
Raw argumentsNO explicit formatting
1 log( Timestamp{}, Pid{}, Pri::warning,2 // NOTE: optional text description3 HwElement::CPU_3,4 Temperature{getTemp(), 75, 85} );
Easy! :)Unified reprensetationAll taggedADL-based customization
http://f9india.com/images/Tower-Crane.png
![Page 106: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/106.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
"Formatted" log API
OptionalPositions onlyAllow translations
1 log( "$0! ($2+$1)/0 does not count as math!",2 Username{"Bob"}, 2, 40 );
Order – yes!Style – no!Checked at compile-time
http://www.marcodesalvo.it/wp-content/uploads/2014/07/merge-ahead.gif
![Page 107: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/107.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
"Formatted" log API
OptionalPositions onlyAllow translations
1 log( "$0! ($2+$1)/0 does not count as math!",2 Username{"Bob"}, 2, 40 );
Order – yes!Style – no!Checked at compile-time
http://www.marcodesalvo.it/wp-content/uploads/2014/07/merge-ahead.gif
![Page 108: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/108.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
"Formatted" log API
OptionalPositions onlyAllow translations
1 log( "$0! ($2+$1)/0 does not count as math!",2 Username{"Bob"}, 2, 40 );
Order – yes!Style – no!Checked at compile-time
http://www.marcodesalvo.it/wp-content/uploads/2014/07/merge-ahead.gif
![Page 109: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/109.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
"Formatted" log API
OptionalPositions onlyAllow translations
1 log( "$0! ($2+$1)/0 does not count as math!",2 Username{"Bob"}, 2, 40 );
Order – yes!Style – no!
Checked at compile-time
http://www.marcodesalvo.it/wp-content/uploads/2014/07/merge-ahead.gif
![Page 110: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/110.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
"Formatted" log API
OptionalPositions onlyAllow translations
1 log( "$0! ($2+$1)/0 does not count as math!",2 Username{"Bob"}, 2, 40 );
Order – yes!Style – no!Checked at compile-time
http://www.marcodesalvo.it/wp-content/uploads/2014/07/merge-ahead.gif
![Page 111: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/111.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
What about common fields?
http://www.the-arcade.ie/wp-content/uploads/2015/01/good_news_everyone.jpg
![Page 112: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/112.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
What about common fields?
http://www.the-arcade.ie/wp-content/uploads/2015/01/good_news_everyone.jpg
![Page 113: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/113.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Your fields – your wrapper!1 template<typename... Args>2 void info(Args& ...args)3 {4 log (Time{}, Pid{}, Pr i : : info , args . . . ) ;5 }6 template<typename . . . Args>7 void warning(Args& . . . args )8 {9 log (Time{}, Pid{}, Pr i : : warning , args . . . ) ;
10 }11 / / . . .
![Page 114: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/114.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Your fields – your wrapper!1 template<typename... Args>2 void info(Args& ...args)3 {4 log(Time{}, Pid{}, Pri::info, args...);5 }6 template<typename . . . Args>7 void warning(Args& . . . args )8 {9 log (Time{}, Pid{}, Pr i : : warning , args . . . ) ;
10 }11 / / . . .
![Page 115: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/115.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Your fields – your wrapper!1 template<typename... Args>2 void info(Args& ...args)3 {4 log(Time{}, Pid{}, Pri::info, args...);5 }6 template<typename... Args>7 void warning(Args& ...args)8 {9 log (Time{}, Pid{}, Pr i : : warning , args . . . ) ;
10 }11 / / . . .
![Page 116: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/116.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Your fields – your wrapper!1 template<typename... Args>2 void info(Args& ...args)3 {4 log(Time{}, Pid{}, Pri::info, args...);5 }6 template<typename... Args>7 void warning(Args& ...args)8 {9 log(Time{}, Pid{}, Pri::warning, args...);
10 }11 // ...
![Page 117: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/117.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Logs’ destination
![Page 118: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/118.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Log represenation
![Page 119: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/119.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Logical view
![Page 120: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/120.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Implementation1 struct FieldInfo2 {3 string tag_ ;4 variant<5 int , double , bool ,6 string ,7 vector<FieldInfo>8 > value_ ;9
10 FieldInfo& retag ( string tag) ;11 };
![Page 121: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/121.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Implementation1 struct FieldInfo2 {3 string tag_;4 variant<5 int , double , bool ,6 string ,7 vector<FieldInfo>8 > value_ ;9
10 FieldInfo& retag ( string tag) ;11 };
![Page 122: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/122.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Implementation1 struct FieldInfo2 {3 string tag_;4 variant<5 int , double , bool ,6 string ,7 vector<FieldInfo>8 > value_ ;9
10 FieldInfo& retag ( string tag) ;11 };
![Page 123: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/123.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Implementation1 struct FieldInfo2 {3 string tag_;4 variant<5 int, double, bool,6 string ,7 vector<FieldInfo>8 > value_ ;9
10 FieldInfo& retag ( string tag) ;11 };
![Page 124: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/124.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Implementation1 struct FieldInfo2 {3 string tag_;4 variant<5 int, double, bool,6 string,7 vector<FieldInfo>8 > value_ ;9
10 FieldInfo& retag ( string tag) ;11 };
![Page 125: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/125.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Implementation1 struct FieldInfo2 {3 string tag_;4 variant<5 int, double, bool,6 string,7 vector<FieldInfo>8 > value_ ;9
10 FieldInfo& retag ( string tag) ;11 };
![Page 126: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/126.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Implementation1 struct FieldInfo2 {3 string tag_;4 variant<5 int, double, bool,6 string,7 vector<FieldInfo>8 > value_;9
10 FieldInfo& retag ( string tag) ;11 };
![Page 127: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/127.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Implementation1 struct FieldInfo2 {3 string tag_;4 variant<5 int, double, bool,6 string,7 vector<FieldInfo>8 > value_;9
10 FieldInfo& retag(string tag);11 };
![Page 128: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/128.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Recursive, variadic template?!
http://lifestyle.iloveindia.com/lounge/images/how-to-fix-computer-errors.jpg
![Page 129: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/129.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Recursive, variadic template?!
http://lifestyle.iloveindia.com/lounge/images/how-to-fix-computer-errors.jpg
![Page 130: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/130.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
User’s perspective
https://baszerr.eu/lib/exe/fetch.php/humour/programmers_and_users.jpg
![Page 131: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/131.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Basic types
1 FieldInfo toFieldInfo(int);2 FieldInfo toFieldInfo(bool);3 FieldInfo toFieldInfo(double);4 FieldInfo toFieldInfo(string);
http://thrivebybecky.com/wp-content/uploads/2013/06/Puzzle-Piece-Hand.jpg
![Page 132: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/132.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
User API – simple types1 #include "FieldInfo.hpp"2
3 struct Name4 {5 string value_;6 };7
8 in l ine FieldInfo toFieldInfo (Name name)9 {
10 return toFieldInfo (name. value_ ) . retag ( "name" ) ;11 }
![Page 133: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/133.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
User API – simple types1 #include "FieldInfo.hpp"2
3 struct Name4 {5 string value_;6 };7
8 inline FieldInfo toFieldInfo(Name name)9 {
10 return toFieldInfo (name. value_ ) . retag ( "name" ) ;11 }
![Page 134: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/134.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
User API – simple types1 #include "FieldInfo.hpp"2
3 struct Name4 {5 string value_;6 };7
8 inline FieldInfo toFieldInfo(Name name)9 {
10 return toFieldInfo(name.value_).retag("name");11 }
![Page 135: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/135.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
User API – multi-field types1 struct Point2D2 {3 int x_;4 int y_;5 };6 in l ine auto toFieldInfo (Point2D p)7 {8 return FieldInfo{"point 2D" ,9 { toFieldInfo (p. x_ ) . retag ( "OX" ) ,
10 toFieldInfo (p. y_ ) . retag ( "OY" ) } };11 }
![Page 136: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/136.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
User API – multi-field types1 struct Point2D2 {3 int x_;4 int y_;5 };6 inline auto toFieldInfo(Point2D p)7 {8 return FieldInfo{"point 2D" ,9 { toFieldInfo (p. x_ ) . retag ( "OX" ) ,
10 toFieldInfo (p. y_ ) . retag ( "OY" ) } };11 }
![Page 137: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/137.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
User API – multi-field types1 struct Point2D2 {3 int x_;4 int y_;5 };6 inline auto toFieldInfo(Point2D p)7 {8 return FieldInfo{"point 2D",9 { toFieldInfo (p. x_ ) . retag ( "OX" ) ,
10 toFieldInfo (p. y_ ) . retag ( "OY" ) } };11 }
![Page 138: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/138.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
User API – multi-field types1 struct Point2D2 {3 int x_;4 int y_;5 };6 inline auto toFieldInfo(Point2D p)7 {8 return FieldInfo{"point 2D",9 { toFieldInfo(p.x_).retag("OX"),
10 toFieldInfo (p. y_ ) . retag ( "OY" ) } };11 }
![Page 139: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/139.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
User API – multi-field types1 struct Point2D2 {3 int x_;4 int y_;5 };6 inline auto toFieldInfo(Point2D p)7 {8 return FieldInfo{"point 2D",9 { toFieldInfo(p.x_).retag("OX"),
10 toFieldInfo(p.y_).retag("OY") } };11 }
![Page 140: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/140.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
User API – multi-field types1 struct Point2D2 {3 int x_;4 int y_;5 };6 inline auto toFieldInfo(Point2D p)7 {8 return FieldInfo{"point 2D",9 { toFieldInfo(p.x_).retag("OX"),
10 toFieldInfo(p.y_).retag("OY") } };11 }
![Page 141: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/141.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
https://i.pinimg.com/600x315/a3/1a/e4/a31ae464ba243ba555b39f3b41444cfc.jpg
![Page 142: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/142.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
User API – nested types1 struct Vector2D2 {3 Point2D from_;4 Point2D to_;5 };6 in l ine auto toFieldInfo (Vector2D v)7 {8 return FieldInfo{"vector 2D" ,9 { toFieldInfo (v . from_) . retag ( "from" ) ,
10 toFieldInfo (v . to_ ) . retag ( " to" ) } };11 }
![Page 143: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/143.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
User API – nested types1 struct Vector2D2 {3 Point2D from_;4 Point2D to_;5 };6 inline auto toFieldInfo(Vector2D v)7 {8 return FieldInfo{"vector 2D" ,9 { toFieldInfo (v . from_) . retag ( "from" ) ,
10 toFieldInfo (v . to_ ) . retag ( " to" ) } };11 }
![Page 144: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/144.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
User API – nested types1 struct Vector2D2 {3 Point2D from_;4 Point2D to_;5 };6 inline auto toFieldInfo(Vector2D v)7 {8 return FieldInfo{"vector 2D",9 { toFieldInfo (v . from_) . retag ( "from" ) ,
10 toFieldInfo (v . to_ ) . retag ( " to" ) } };11 }
![Page 145: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/145.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
User API – nested types1 struct Vector2D2 {3 Point2D from_;4 Point2D to_;5 };6 inline auto toFieldInfo(Vector2D v)7 {8 return FieldInfo{"vector 2D",9 { toFieldInfo(v.from_).retag("from"),
10 toFieldInfo (v . to_ ) . retag ( " to" ) } };11 }
![Page 146: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/146.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
User API – nested types1 struct Vector2D2 {3 Point2D from_;4 Point2D to_;5 };6 inline auto toFieldInfo(Vector2D v)7 {8 return FieldInfo{"vector 2D",9 { toFieldInfo(v.from_).retag("from"),
10 toFieldInfo(v.to_).retag("to") } };11 }
![Page 147: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/147.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
User API – nested types1 struct Vector2D2 {3 Point2D from_;4 Point2D to_;5 };6 inline auto toFieldInfo(Vector2D v)7 {8 return FieldInfo{"vector 2D",9 { toFieldInfo(v.from_).retag("from"),
10 toFieldInfo(v.to_).retag("to") } };11 }
![Page 148: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/148.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
https://imgflip.com/i/1yme2m
![Page 149: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/149.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Formatting
![Page 150: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/150.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
https://atlaz.io/blog/wp-content/uploads/2017/04/pablo-25.png
![Page 151: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/151.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Logger with format
1 template<int N, typename... Args>2 void log(Format<N> fmt, Args const&... args)3 {4 static_assert ( N == sizeof . . . ( args ) ,5 " ar i ty does not match" ) ;6 format (fmt , args . . . ) ;7 / / . . .8 }
![Page 152: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/152.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Logger with format
1 template<int N, typename... Args>2 void log(Format<N> fmt, Args const&... args)3 {4 static_assert( N == sizeof...(args),5 "arity does not match");6 format (fmt , args . . . ) ;7 / / . . .8 }
![Page 153: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/153.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Logger with format
1 template<int N, typename... Args>2 void log(Format<N> fmt, Args const&... args)3 {4 static_assert( N == sizeof...(args),5 "arity does not match");6 format(fmt, args...);7 // ...8 }
![Page 154: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/154.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
String parsing
1 constexpr int formatCheckArity(char const* fmt)2 {3 const auto count = uniqueArgs( fmt) ;4 i f ( count == 0 )5 return 0;6 const auto pos = lastArgPos ( fmt) ;7 i f ( count != pos + 1 )8 throw std : : runtime_error{"not a l l used"};9 return count ;
10 }
![Page 155: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/155.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
String parsing
1 constexpr int formatCheckArity(char const* fmt)2 {3 const auto count = uniqueArgs(fmt);4 i f ( count == 0 )5 return 0;6 const auto pos = lastArgPos ( fmt) ;7 i f ( count != pos + 1 )8 throw std : : runtime_error{"not a l l used"};9 return count ;
10 }
![Page 156: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/156.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
String parsing
1 constexpr int formatCheckArity(char const* fmt)2 {3 const auto count = uniqueArgs(fmt);4 if( count == 0 )5 return 0;6 const auto pos = lastArgPos ( fmt) ;7 i f ( count != pos + 1 )8 throw std : : runtime_error{"not a l l used"};9 return count ;
10 }
![Page 157: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/157.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
String parsing
1 constexpr int formatCheckArity(char const* fmt)2 {3 const auto count = uniqueArgs(fmt);4 if( count == 0 )5 return 0;6 const auto pos = lastArgPos(fmt);7 i f ( count != pos + 1 )8 throw std : : runtime_error{"not a l l used"};9 return count ;
10 }
![Page 158: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/158.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
String parsing
1 constexpr int formatCheckArity(char const* fmt)2 {3 const auto count = uniqueArgs(fmt);4 if( count == 0 )5 return 0;6 const auto pos = lastArgPos(fmt);7 if( count != pos + 1 )8 throw std::runtime_error{"not all used"};9 return count ;
10 }
![Page 159: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/159.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
String parsing
1 constexpr int formatCheckArity(char const* fmt)2 {3 const auto count = uniqueArgs(fmt);4 if( count == 0 )5 return 0;6 const auto pos = lastArgPos(fmt);7 if( count != pos + 1 )8 throw std::runtime_error{"not all used"};9 return count;
10 }
![Page 160: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/160.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Glue it up!
http://powerplug-in.com/wp-content/uploads/2011/02/iStock_000007427834Small.jpg
![Page 161: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/161.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Formatting
1 template<int N>2 struct Format3 {4 char const* value_ ;5 };6
7 #define FORMAT(fmt) \8 Format< formatCheckArity ( fmt) >{fmt}
![Page 162: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/162.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Formatting
1 template<int N>2 struct Format3 {4 char const* value_;5 };6
7 #define FORMAT(fmt) \8 Format< formatCheckArity ( fmt) >{fmt}
![Page 163: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/163.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Formatting
1 template<int N>2 struct Format3 {4 char const* value_;5 };6
7 #define FORMAT(fmt) \8 Format< formatCheckArity ( fmt) >{fmt}
![Page 164: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/164.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Formatting
1 template<int N>2 struct Format3 {4 char const* value_;5 };6
7 #define FORMAT(fmt) \8 Format< formatCheckArity ( fmt) >{fmt}
![Page 165: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/165.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Formatting
1 template<int N>2 struct Format3 {4 char const* value_;5 };6
7 #define FORMAT(fmt) \8 Format< formatCheckArity ( fmt) >{fmt}
![Page 166: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/166.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Formatting
1 template<int N>2 struct Format3 {4 char const* value_;5 };6
7 #define FORMAT(fmt) \8 Format< formatCheckArity(fmt) >{fmt}
![Page 167: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/167.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Usage
1 log( FORMAT("$1 is $0"), 42, "answer" );2 log ( FORMAT( "$0/$0 == 1" ) , 42 ) ;3 / / log ( FORMAT("$2 is $0") , 42, "answer" ) ;4 / / log ( FORMAT("answer is $0") , 42, "answer" ) ;5
6 #define LOGF(fmt , . . . ) \7 log ( FORMAT(fmt) , __VA_ARGS__ )8 LOGF( "$0 != $1" , 4, 2) ;
![Page 168: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/168.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Usage
1 log( FORMAT("$1 is $0"), 42, "answer" );2 log( FORMAT("$0/$0 == 1"), 42 );3 / / log ( FORMAT("$2 is $0") , 42, "answer" ) ;4 / / log ( FORMAT("answer is $0") , 42, "answer" ) ;5
6 #define LOGF(fmt , . . . ) \7 log ( FORMAT(fmt) , __VA_ARGS__ )8 LOGF( "$0 != $1" , 4, 2) ;
![Page 169: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/169.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Usage
1 log( FORMAT("$1 is $0"), 42, "answer" );2 log( FORMAT("$0/$0 == 1"), 42 );3 //log( FORMAT("$2 is $0"), 42, "answer" );4 / / log ( FORMAT("answer is $0") , 42, "answer" ) ;5
6 #define LOGF(fmt , . . . ) \7 log ( FORMAT(fmt) , __VA_ARGS__ )8 LOGF( "$0 != $1" , 4, 2) ;
![Page 170: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/170.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Usage
1 log( FORMAT("$1 is $0"), 42, "answer" );2 log( FORMAT("$0/$0 == 1"), 42 );3 //log( FORMAT("$2 is $0"), 42, "answer" );4 //log( FORMAT("answer is $0"), 42, "answer" );5
6 #define LOGF(fmt , . . . ) \7 log ( FORMAT(fmt) , __VA_ARGS__ )8 LOGF( "$0 != $1" , 4, 2) ;
![Page 171: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/171.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Usage
1 log( FORMAT("$1 is $0"), 42, "answer" );2 log( FORMAT("$0/$0 == 1"), 42 );3 //log( FORMAT("$2 is $0"), 42, "answer" );4 //log( FORMAT("answer is $0"), 42, "answer" );5
6 #define LOGF(fmt, ...) \7 log( FORMAT(fmt), __VA_ARGS__ )8 LOGF( "$0 != $1" , 4, 2) ;
![Page 172: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/172.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Usage
1 log( FORMAT("$1 is $0"), 42, "answer" );2 log( FORMAT("$0/$0 == 1"), 42 );3 //log( FORMAT("$2 is $0"), 42, "answer" );4 //log( FORMAT("answer is $0"), 42, "answer" );5
6 #define LOGF(fmt, ...) \7 log( FORMAT(fmt), __VA_ARGS__ )8 LOGF( "$0 != $1" , 4, 2) ;
![Page 173: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/173.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Usage
1 log( FORMAT("$1 is $0"), 42, "answer" );2 log( FORMAT("$0/$0 == 1"), 42 );3 //log( FORMAT("$2 is $0"), 42, "answer" );4 //log( FORMAT("answer is $0"), 42, "answer" );5
6 #define LOGF(fmt, ...) \7 log( FORMAT(fmt), __VA_ARGS__ )8 LOGF( "$0 != $1" , 4, 2) ;
![Page 174: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/174.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Usage
1 log( FORMAT("$1 is $0"), 42, "answer" );2 log( FORMAT("$0/$0 == 1"), 42 );3 //log( FORMAT("$2 is $0"), 42, "answer" );4 //log( FORMAT("answer is $0"), 42, "answer" );5
6 #define LOGF(fmt, ...) \7 log( FORMAT(fmt), __VA_ARGS__ )8 LOGF("$0 != $1", 4, 2);
![Page 175: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/175.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Translations
Problem:Input: "pass the salt, $0"Output: "$0 - podaj sól"
Solution:FORMAT("use english only here")Text-based index!std::map<std::string, std::string>
Extracting strings:grep ’FORMAT(’#define custom FORMATClang’s AST tool
CI support!http://extra.shu.ac.uk/sbsblog/wp-content/uploads/2013/11/problem.jpg
http://www.how-to-draw-funny-cartoons.com/image-files/cartoon-light-8.gifhttps://www.gohacking.com/wp-content/uploads/2015/01/how-to-hack-a-computer-735x400.jpg
https://www.rosehosting.com/blog/wp-content/uploads/2014/11/jenkins.png
![Page 176: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/176.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
TranslationsProblem:
Input: "pass the salt, $0"Output: "$0 - podaj sól"
Solution:FORMAT("use english only here")Text-based index!std::map<std::string, std::string>
Extracting strings:grep ’FORMAT(’#define custom FORMATClang’s AST tool
CI support!http://extra.shu.ac.uk/sbsblog/wp-content/uploads/2013/11/problem.jpg
http://www.how-to-draw-funny-cartoons.com/image-files/cartoon-light-8.gifhttps://www.gohacking.com/wp-content/uploads/2015/01/how-to-hack-a-computer-735x400.jpg
https://www.rosehosting.com/blog/wp-content/uploads/2014/11/jenkins.png
![Page 177: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/177.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
TranslationsProblem:
Input: "pass the salt, $0"Output: "$0 - podaj sól"
Solution:FORMAT("use english only here")Text-based index!std::map<std::string, std::string>
Extracting strings:grep ’FORMAT(’#define custom FORMATClang’s AST tool
CI support!http://extra.shu.ac.uk/sbsblog/wp-content/uploads/2013/11/problem.jpg
http://www.how-to-draw-funny-cartoons.com/image-files/cartoon-light-8.gifhttps://www.gohacking.com/wp-content/uploads/2015/01/how-to-hack-a-computer-735x400.jpg
https://www.rosehosting.com/blog/wp-content/uploads/2014/11/jenkins.png
![Page 178: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/178.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
TranslationsProblem:
Input: "pass the salt, $0"Output: "$0 - podaj sól"
Solution:FORMAT("use english only here")Text-based index!std::map<std::string, std::string>
Extracting strings:grep ’FORMAT(’#define custom FORMATClang’s AST tool
CI support!http://extra.shu.ac.uk/sbsblog/wp-content/uploads/2013/11/problem.jpg
http://www.how-to-draw-funny-cartoons.com/image-files/cartoon-light-8.gifhttps://www.gohacking.com/wp-content/uploads/2015/01/how-to-hack-a-computer-735x400.jpg
https://www.rosehosting.com/blog/wp-content/uploads/2014/11/jenkins.png
![Page 179: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/179.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
TranslationsProblem:
Input: "pass the salt, $0"Output: "$0 - podaj sól"
Solution:FORMAT("use english only here")Text-based index!std::map<std::string, std::string>
Extracting strings:grep ’FORMAT(’#define custom FORMATClang’s AST tool
CI support!http://extra.shu.ac.uk/sbsblog/wp-content/uploads/2013/11/problem.jpg
http://www.how-to-draw-funny-cartoons.com/image-files/cartoon-light-8.gifhttps://www.gohacking.com/wp-content/uploads/2015/01/how-to-hack-a-computer-735x400.jpg
https://www.rosehosting.com/blog/wp-content/uploads/2014/11/jenkins.png
![Page 180: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/180.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Summary
![Page 181: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/181.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Logging1 72.27.10.1 - - [10/Sep/2017:09:01:35] "GET /ThreadPool.ut.cpp HTTP/1.1" 200 4794 "http://localhost/" "MyBrowser-xx" "-"2 72.27.10.1 - - [10/Sep/2017:09:01:34] "Error processing /ThreadPool.ut.cpp - 404 - no such file of directory"3 72.27.10.1 - - [10/Sep/2017:09:01:34] "GET /CacheLine.ut.cpp HTTP/1.1" 200 2185 "http://localhost/" "MyBrowser-xx" "-"4 72.7.0.1 - - [10/Sep/2017:09:01:35] "GET /ThreadPool.ut.cpp HTTP/1.1" 200 4794 "http://localhost/" "MyBrowser-xx" "-"5 72.7.30.1 - - [10/Sep/2017:09:01:34] "Error processing /ThreadPool.ut.cpp - 404 - no such file of directory"6 72.17.0.221 - - [10/Sep/2017:09:01:28] "GET / HTTP/1.1" 200 2721 "-" "MyBrowser-xx" "-"7 72.7.0.1 - - [10/Sep/2017:09:01:31] "GET /ActiveObject.ut.cpp HTTP/1.1" 200 1107 "http://localhost/" "MyBrowser-xx" "-"8 72.7.0.1 - - [10/Sep/2017:09:01:33] "GET /Fifo.hpp HTTP/1.1" 200 3754 "http://localhost/" "MyBrowser-xx" "-"9 72.7.0.1 - - [10/Sep/2017:09:01:31] "GET /ActiveObject.ut.cpp HTTP/1.1" 200 1107 "http://localhost/" "MyBrowser-xx" "-"
10 72.7.0.1 - - [10/Sep/2017:09:01:33] "GET /Fifo.hpp HTTP/1.1" 200 3754 "http://localhost/" "MyBrowser-xx" "-"11 1.32.0.1 - - [10/Sep/2017:09:01:34] "GET /Provider.hpp HTTP/1.1" 200 1201 "http://localhost/" "MyBrowser-xx" "-"12 172.227.10.1 - - [10/Sep/2017:09:01:34] "GET /CacheLine.ut.cpp HTTP/1.1" 200 2185 "http://localhost/" "MyBrowser-xx" "-"13 72.7.0.1 - - [10/Sep/2017:09:01:35] "GET /ThreadPool.ut.cpp HTTP/1.1" 200 4794 "http://localhost/" "MyBrowser-xx" "-"14 72.7.0.1 - - [10/Sep/2017:09:01:34] "Error processing /ThreadPool.ut.cpp - 404 - no such file of directory"15 42.1.2.4 - - [10/Sep/2017:09:01:34] "GET /CacheLine.ut.cpp HTTP/1.1" 200 2185 "http://localhost/" "MyBrowser-xx" "-"16 72.7.0.1 - - [10/Sep/2017:09:01:35] "GET /ThreadPool.ut.cpp HTTP/1.1" 200 4794 "http://localhost/" "MyBrowser-xx" "-"17 72.7.0.1 - - [10/Sep/2017:09:01:36] "GET /JoiningThread.ut.cpp HTTP/1.1" 200 2099 "http://localhost/" "MyBrowser-xx" "-"18 72.7.0.1 - - [10/Sep/2017:09:01:37] "GET /ThreadsCount.hpp HTTP/1.1" 200 474 "http://localhost/" "MyBrowser-xx" "-"19 72.7.0.1 - - [10/Sep/2017:09:01:40] "GET /ActiveObject.hpp HTTP/1.1" 500 - "internal server error!"20 172.7.222.191 - - [10/Sep/2017:09:01:41] "GET /50x.html HTTP/1.1" 200 537 "http://localhost/" "MyBrowser-xx" "-"21 72.7.0.1 - - [10/Sep/2017:09:01:43] "GET /CacheLine.ut.cpp HTTP/1.1" 200 2185 "http://localhost/" "MyBrowser-xx" "-"22 55.3.1.3 - - [10/Sep/2017:09:01:45] "GET /Provider.ut.cpp HTTP/1.1" 200 2689 "http://localhost/" "MyBrowser-xx" "-"23 72.7.0.1 - - [10/Sep/2017:09:01:31] "GET /ActiveObject.ut.cpp HTTP/1.1" 200 1107 "http://localhost/" "MyBrowser-xx" "-"24 72.7.0.1 - - [10/Sep/2017:09:01:33] "GET /Fifo.hpp HTTP/1.1" 200 3754 "http://localhost/" "MyBrowser-xx" "-"25 72.7.0.1 - - [10/Sep/2017:09:01:34] "GET /LockProxy.hpp HTTP/1.1" 200 1201 "http://localhost/" "MyBrowser-xx" "-"26 72.7.0.1 - - [10/Sep/2017:09:01:34] "GET /CacheLine.ut.cpp HTTP/1.1" 200 2185 "http://localhost/" "MyBrowser-xx" "-"
http://www.pd4pic.com/images/admittance-entry-prohibited-forbidden-not-allowed.png
![Page 182: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/182.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Logging1 72.27.10.1 - - [10/Sep/2017:09:01:35] "GET /ThreadPool.ut.cpp HTTP/1.1" 200 4794 "http://localhost/" "MyBrowser-xx" "-"2 72.27.10.1 - - [10/Sep/2017:09:01:34] "Error processing /ThreadPool.ut.cpp - 404 - no such file of directory"3 72.27.10.1 - - [10/Sep/2017:09:01:34] "GET /CacheLine.ut.cpp HTTP/1.1" 200 2185 "http://localhost/" "MyBrowser-xx" "-"4 72.7.0.1 - - [10/Sep/2017:09:01:35] "GET /ThreadPool.ut.cpp HTTP/1.1" 200 4794 "http://localhost/" "MyBrowser-xx" "-"5 72.7.30.1 - - [10/Sep/2017:09:01:34] "Error processing /ThreadPool.ut.cpp - 404 - no such file of directory"6 72.17.0.221 - - [10/Sep/2017:09:01:28] "GET / HTTP/1.1" 200 2721 "-" "MyBrowser-xx" "-"7 72.7.0.1 - - [10/Sep/2017:09:01:31] "GET /ActiveObject.ut.cpp HTTP/1.1" 200 1107 "http://localhost/" "MyBrowser-xx" "-"8 72.7.0.1 - - [10/Sep/2017:09:01:33] "GET /Fifo.hpp HTTP/1.1" 200 3754 "http://localhost/" "MyBrowser-xx" "-"9 72.7.0.1 - - [10/Sep/2017:09:01:31] "GET /ActiveObject.ut.cpp HTTP/1.1" 200 1107 "http://localhost/" "MyBrowser-xx" "-"
10 72.7.0.1 - - [10/Sep/2017:09:01:33] "GET /Fifo.hpp HTTP/1.1" 200 3754 "http://localhost/" "MyBrowser-xx" "-"11 1.32.0.1 - - [10/Sep/2017:09:01:34] "GET /Provider.hpp HTTP/1.1" 200 1201 "http://localhost/" "MyBrowser-xx" "-"12 172.227.10.1 - - [10/Sep/2017:09:01:34] "GET /CacheLine.ut.cpp HTTP/1.1" 200 2185 "http://localhost/" "MyBrowser-xx" "-"13 72.7.0.1 - - [10/Sep/2017:09:01:35] "GET /ThreadPool.ut.cpp HTTP/1.1" 200 4794 "http://localhost/" "MyBrowser-xx" "-"14 72.7.0.1 - - [10/Sep/2017:09:01:34] "Error processing /ThreadPool.ut.cpp - 404 - no such file of directory"15 42.1.2.4 - - [10/Sep/2017:09:01:34] "GET /CacheLine.ut.cpp HTTP/1.1" 200 2185 "http://localhost/" "MyBrowser-xx" "-"16 72.7.0.1 - - [10/Sep/2017:09:01:35] "GET /ThreadPool.ut.cpp HTTP/1.1" 200 4794 "http://localhost/" "MyBrowser-xx" "-"17 72.7.0.1 - - [10/Sep/2017:09:01:36] "GET /JoiningThread.ut.cpp HTTP/1.1" 200 2099 "http://localhost/" "MyBrowser-xx" "-"18 72.7.0.1 - - [10/Sep/2017:09:01:37] "GET /ThreadsCount.hpp HTTP/1.1" 200 474 "http://localhost/" "MyBrowser-xx" "-"19 72.7.0.1 - - [10/Sep/2017:09:01:40] "GET /ActiveObject.hpp HTTP/1.1" 500 - "internal server error!"20 172.7.222.191 - - [10/Sep/2017:09:01:41] "GET /50x.html HTTP/1.1" 200 537 "http://localhost/" "MyBrowser-xx" "-"21 72.7.0.1 - - [10/Sep/2017:09:01:43] "GET /CacheLine.ut.cpp HTTP/1.1" 200 2185 "http://localhost/" "MyBrowser-xx" "-"22 55.3.1.3 - - [10/Sep/2017:09:01:45] "GET /Provider.ut.cpp HTTP/1.1" 200 2689 "http://localhost/" "MyBrowser-xx" "-"23 72.7.0.1 - - [10/Sep/2017:09:01:31] "GET /ActiveObject.ut.cpp HTTP/1.1" 200 1107 "http://localhost/" "MyBrowser-xx" "-"24 72.7.0.1 - - [10/Sep/2017:09:01:33] "GET /Fifo.hpp HTTP/1.1" 200 3754 "http://localhost/" "MyBrowser-xx" "-"25 72.7.0.1 - - [10/Sep/2017:09:01:34] "GET /LockProxy.hpp HTTP/1.1" 200 1201 "http://localhost/" "MyBrowser-xx" "-"26 72.7.0.1 - - [10/Sep/2017:09:01:34] "GET /CacheLine.ut.cpp HTTP/1.1" 200 2185 "http://localhost/" "MyBrowser-xx" "-"
http://www.pd4pic.com/images/admittance-entry-prohibited-forbidden-not-allowed.png
![Page 183: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/183.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Data structure
Log as data structure!
~50 pages! :)
Jay Kreps
Logs meant for humans to read area sort of anachronism.
![Page 184: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/184.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Data structure
Log as data structure!
~50 pages! :)
Jay Kreps
Logs meant for humans to read area sort of anachronism.
![Page 185: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/185.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Data structure
Log as data structure!
~50 pages! :)
Jay Kreps
Logs meant for humans to read area sort of anachronism.
![Page 186: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/186.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Logs are coming!
http://walldiskpaper.com/wp-content/uploads/2015/01/All-Elephant-Running-Wallpapers.jpg
![Page 187: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/187.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Keep’em structured!
1 {2 "timestamp": 1231234,3 "priority": "info",4 "pid": 4242,5 "path": "/images/924",6 "method": "GET",7 "response": {8 "status": 200,9 "processing_time_ms": 11
10 }11 }
Machine-readable!
Automate
![Page 188: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/188.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Example implementation
https://github.com/el-bart/but
BUT::LogC++14Open-sourceBSD-revised
Presented concept
Extra Sinks, etc. . .
Docker-based SDK
![Page 189: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/189.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Example implementation
https://github.com/el-bart/but
BUT::LogC++14Open-sourceBSD-revised
Presented concept
Extra Sinks, etc. . .
Docker-based SDK
![Page 190: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/190.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Example implementation
https://github.com/el-bart/but
BUT::LogC++14Open-sourceBSD-revised
Presented concept
Extra Sinks, etc. . .
Docker-based SDK
![Page 191: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/191.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
SDK with Docker talk
https://upload.wikimedia.org/wikipedia/commons/4/4e/Docker_container_engine_logo.svg
![Page 192: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/192.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Universal idea
https://upload.wikimedia.org/wikipedia/commons/2/23/Golang.pnghttps://upload.wikimedia.org/wikipedia/en/3/30/Java_programming_language_logo.svghttps://upload.wikimedia.org/wikipedia/commons/f/f8/Python_logo_and_wordmark.svg
https://upload.wikimedia.org/wikipedia/commons/0/0d/C_Sharp_wordmark.svghttps://upload.wikimedia.org/wikipedia/commons/7/73/Ruby_logo.svg
![Page 193: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/193.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Universal idea
https://upload.wikimedia.org/wikipedia/commons/2/23/Golang.pnghttps://upload.wikimedia.org/wikipedia/en/3/30/Java_programming_language_logo.svghttps://upload.wikimedia.org/wikipedia/commons/f/f8/Python_logo_and_wordmark.svg
https://upload.wikimedia.org/wikipedia/commons/0/0d/C_Sharp_wordmark.svghttps://upload.wikimedia.org/wikipedia/commons/7/73/Ruby_logo.svg
![Page 194: Structured logging · Intro What is log? Typical logger Idea API Log represenation Formatting Summary Structured logging Bartek ’BaSz’ Szurgot](https://reader033.vdocuments.net/reader033/viewer/2022050423/5f91d7b8a6483645ed41c511/html5/thumbnails/194.jpg)
Intro What is log? Typical logger Idea API Log represenation Formatting Summary
Q&A
log("?");https://www.baszerr.eu