{"id":44296,"date":"2016-02-08T08:00:57","date_gmt":"2016-02-08T16:00:57","guid":{"rendered":"https:\/\/redfindevelop.wpengine.com\/blog\/?p=44296"},"modified":"2020-10-05T13:12:00","modified_gmt":"2020-10-05T20:12:00","slug":"preserving-colorized-server-logs","status":"publish","type":"post","link":"https:\/\/www.redfin.com\/news\/preserving-colorized-server-logs\/","title":{"rendered":"Preserving colorized server logs"},"content":{"rendered":"<p>At Redfin, we&#8217;ve written a wrapper script around our React server to make it easier to use for developers who aren&#8217;t familiar with Node.js that we call Corvair (we&#8217;re apparently super into muscle cars or something &#8212; our api server is called Stingray). When you run `corvair`, you get a bunch of really pretty logs that are colorized with helpful information that looks like this<\/p>\n<figure id=\"media-44297\" class=\"align-none\"><img decoding=\"async\" src=\"https:\/\/www.redfin.com\/news\/wp-content\/uploads\/2016\/02\/Screen-Shot-2016-02-04-at-2.36.40-PM.png\" alt=\"Screen Shot 2016-02-04 at 2.36.40 PM\" \/><\/figure>\n<p>The colorization comes from <a href=\"https:\/\/github.com\/gulpjs\/gulp\">gulp<\/a>, which uses one of personal heroes, <a href=\"https:\/\/github.com\/sindresorhus\">Sindre Sordhus<\/a>\u2019s fantastic little library, <a href=\"https:\/\/github.com\/chalk\/chalk\">chalk<\/a>. This is great, except that your terminal emulator likely has a maximum amount history that it saves, which can make it frustrating to debug complex issues, since you either have to scroll extensively, or you may even lose your logs altogether. There is a great little application called `tee` that allows you to split a stream in two, outputting it simultaneously to the console and to a file:<\/p>\n<pre class=\"lang:bash decode:true\">    corvair -bs | tee corvair.log\n<\/pre>\n<p>But `chalk` detects if its output is a tty, and strips the color codes if it is not:<\/p>\n<figure id=\"media-44301\" class=\"align-none\"><img fetchpriority=\"high\" decoding=\"async\" class=\"\" src=\"https:\/\/www.redfin.com\/news\/wp-content\/uploads\/2016\/02\/Screen-Shot-2015-12-01-at-5.16.04-PM.png\" alt=\"Screen Shot 2015-12-01 at 5.16.04 PM\" width=\"615\" height=\"242\" \/><\/figure>\n<p>You can get around this problem by running `corvair` using `script`, which executes a command in a terminal, and allows you to output the results to a file<\/p>\n<pre class=\"lang:bash decode:true\">    script -q corvair.log corvair -bs\n<\/pre>\n<p>And successfully preserves colors in the terminal window<\/p>\n<figure id=\"media-44302\" class=\"align-none\"><img decoding=\"async\" class=\"\" src=\"https:\/\/www.redfin.com\/news\/wp-content\/uploads\/2016\/02\/Screen-Shot-2015-12-01-at-4.45.53-PM.png\" alt=\"Screen Shot 2015-12-01 at 4.45.53 PM\" width=\"819\" height=\"367\" \/><\/figure>\n<p>However, this means that `corvair.log` now has all the terminal color escape codes in it<\/p>\n<figure id=\"media-44303\" class=\"align-none\"><img decoding=\"async\" class=\"\" src=\"https:\/\/www.redfin.com\/news\/wp-content\/uploads\/2016\/02\/Screen-Shot-2015-12-01-at-4.47.14-PM.png\" alt=\"Screen Shot 2015-12-01 at 4.47.14 PM\" width=\"816\" height=\"873\" \/><\/figure>\n<p>Gross &#8212; now all those magical regexes I get out of our internal wikis use to `grep` for some build event or error message don&#8217;t work because there&#8217;s weird garbage in the log file. Luckily, this problem is solveable with some unixy goodness. First we&#8217;ll need to install some dependencies (we use OS X for our dev machines, so we use the indispensable <a href=\"http:\/\/brew.sh\/\">homebrew<\/a> to manage packages)<\/p>\n<pre class=\"lang:bash decode:true\">    brew install homebrew\/dupes\/expect\n    brew install coreutils\n    brew install gnu-sed\n<\/pre>\n<p>And add the new unix `coreutils` to your path by updating your `.zshrc` or `.bashrc`<\/p>\n<pre class=\"lang:bash decode:true\">    export PATH=\"$(brew --prefix coreutils)\/libexec\/gnubin:\/usr\/local\/bin:$PATH\"\n<\/pre>\n<p>And now we can successfully trick `corvair` into thinking its output is to a tty even when used in a pipe<\/p>\n<pre class=\"lang:bash decode:true\">     unbuffer corvair -bs | tee corvair.out\n<\/pre>\n<p>And use gnu sed to output the terminal color escapes to stderr, and the rest of the output to stdout, and get a log file with no color escapes while preserving colors in the terminal output.<\/p>\n<pre class=\"lang:bash decode:true\">    unbuffer corvair -bs  | gsed -r 'w \/dev\/stderr' | gsed -r 's\/\\x1B\\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]\/\/g' &gt; corvair.out\n<\/pre>\n<figure id=\"media-44305\" class=\"align-none\"><img decoding=\"async\" src=\"https:\/\/www.redfin.com\/news\/wp-content\/uploads\/2016\/02\/Screen-Shot-2015-12-01-at-5.24.26-PM.png\" alt=\"Screen Shot 2015-12-01 at 5.24.26 PM\" \/><\/figure>\n<figure id=\"media-44306\" class=\"align-none\"><img loading=\"lazy\" decoding=\"async\" class=\"\" src=\"https:\/\/www.redfin.com\/news\/wp-content\/uploads\/2016\/02\/Screen-Shot-2015-12-01-at-5.26.09-PM.png\" alt=\"Screen Shot 2015-12-01 at 5.26.09 PM\" width=\"511\" height=\"185\" \/><\/figure>\n<p>One word of caution &#8212; unix pipes do not necessarily flush on SIGINT, so you may lose some unbuffered logs at the end of your file if you take your server down with a Cmd+C. And, of course, this works for any colorized output, like `ls &#8211;color=auto`.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>How to use unix tools and node.js to preserve logs while outputting colorized output into the terminal.<\/p>\n","protected":false},"author":13177,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[57],"tags":[],"dashboard":[],"coauthors":[],"class_list":["post-44296","post","type-post","status-publish","format-standard","hentry","category-company-news"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.7 (Yoast SEO v27.5) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Preserving colorized server logs - Redfin Real Estate News<\/title>\n<meta name=\"description\" content=\"Use unix tools and node.js to preserve logs while outputting colorized output into the terminal\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.redfin.com\/news\/preserving-colorized-server-logs\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Preserving colorized server logs\" \/>\n<meta property=\"og:description\" content=\"Use unix tools and node.js to preserve logs while outputting colorized output into the terminal\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.redfin.com\/news\/preserving-colorized-server-logs\/\" \/>\n<meta property=\"og:site_name\" content=\"Redfin Real Estate News\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/redfin\" \/>\n<meta property=\"article:published_time\" content=\"2016-02-08T16:00:57+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-10-05T20:12:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.redfin.com\/news\/wp-content\/uploads\/2016\/02\/Screen-Shot-2016-02-04-at-2.36.40-PM.png\" \/>\n<meta name=\"author\" content=\"Doug Wade\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@redfin\" \/>\n<meta name=\"twitter:site\" content=\"@redfin\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Doug Wade\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.redfin.com/news\\\/preserving-colorized-server-logs\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.redfin.com/news\\\/preserving-colorized-server-logs\\\/\"},\"author\":{\"name\":\"Doug Wade\",\"@id\":\"https:\\\/\\\/www.redfin.com/news\\\/#\\\/schema\\\/person\\\/ce8e1b698aeb1c41384c05ef5c97ddbc\"},\"headline\":\"Preserving colorized server logs\",\"datePublished\":\"2016-02-08T16:00:57+00:00\",\"dateModified\":\"2020-10-05T20:12:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.redfin.com/news\\\/preserving-colorized-server-logs\\\/\"},\"wordCount\":420,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.redfin.com/news\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.redfin.com/news\\\/preserving-colorized-server-logs\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.redfin.com\\\/news\\\/wp-content\\\/uploads\\\/2016\\\/02\\\/Screen-Shot-2016-02-04-at-2.36.40-PM.png\",\"articleSection\":[\"Company News\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.redfin.com/news\\\/preserving-colorized-server-logs\\\/#respond\"]}],\"copyrightYear\":\"2016\",\"copyrightHolder\":{\"@id\":\"https:\\\/\\\/www.redfin.com/news\\\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.redfin.com/news\\\/preserving-colorized-server-logs\\\/\",\"url\":\"https:\\\/\\\/www.redfin.com/news\\\/preserving-colorized-server-logs\\\/\",\"name\":\"Preserving colorized server logs - Redfin Real Estate News\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.redfin.com/news\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.redfin.com/news\\\/preserving-colorized-server-logs\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.redfin.com/news\\\/preserving-colorized-server-logs\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.redfin.com\\\/news\\\/wp-content\\\/uploads\\\/2016\\\/02\\\/Screen-Shot-2016-02-04-at-2.36.40-PM.png\",\"datePublished\":\"2016-02-08T16:00:57+00:00\",\"dateModified\":\"2020-10-05T20:12:00+00:00\",\"description\":\"Use unix tools and node.js to preserve logs while outputting colorized output into the terminal\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.redfin.com/news\\\/preserving-colorized-server-logs\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.redfin.com/news\\\/preserving-colorized-server-logs\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.redfin.com/news\\\/preserving-colorized-server-logs\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.redfin.com\\\/news\\\/wp-content\\\/uploads\\\/2016\\\/02\\\/Screen-Shot-2016-02-04-at-2.36.40-PM.png\",\"contentUrl\":\"https:\\\/\\\/www.redfin.com\\\/news\\\/wp-content\\\/uploads\\\/2016\\\/02\\\/Screen-Shot-2016-02-04-at-2.36.40-PM.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.redfin.com/news\\\/preserving-colorized-server-logs\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.redfin.com/news\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Preserving colorized server logs\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.redfin.com/news\\\/#website\",\"url\":\"https:\\\/\\\/www.redfin.com/news\\\/\",\"name\":\"Redfin Real Estate News\",\"description\":\"The latest real estate news and research from technology-powered residential real estate company, Redfin.\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.redfin.com/news\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.redfin.com/news\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.redfin.com/news\\\/#organization\",\"name\":\"Redfin\",\"url\":\"https:\\\/\\\/www.redfin.com/news\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.redfin.com/news\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.redfin.com\\\/news\\\/wp-content\\\/uploads\\\/2020\\\/10\\\/Redfin-News-Logo.png\",\"contentUrl\":\"https:\\\/\\\/www.redfin.com\\\/news\\\/wp-content\\\/uploads\\\/2020\\\/10\\\/Redfin-News-Logo.png\",\"width\":1100,\"height\":235,\"caption\":\"Redfin\"},\"image\":{\"@id\":\"https:\\\/\\\/www.redfin.com/news\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/redfin\",\"https:\\\/\\\/x.com\\\/redfin\",\"https:\\\/\\\/www.instagram.com\\\/redfinrealestate\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/redfin\",\"https:\\\/\\\/www.pinterest.com\\\/redfin\\\/\",\"https:\\\/\\\/en.wikipedia.org\\\/wiki\\\/Redfin\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.redfin.com/news\\\/#\\\/schema\\\/person\\\/ce8e1b698aeb1c41384c05ef5c97ddbc\",\"name\":\"Doug Wade\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1cb4c01b6eebf4bb7770e674ad8d70385f0e968d07b6345cd98a9c4f06020943?s=96&d=wp_user_avatar&r=g98695681813068d628dacc4b535b1a8d\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1cb4c01b6eebf4bb7770e674ad8d70385f0e968d07b6345cd98a9c4f06020943?s=96&d=wp_user_avatar&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1cb4c01b6eebf4bb7770e674ad8d70385f0e968d07b6345cd98a9c4f06020943?s=96&d=wp_user_avatar&r=g\",\"caption\":\"Doug Wade\"},\"description\":\"I'm a software developer at Redfin on the Platforms team. I'm a cyclist, soccer hooligan, and beer enthusiast.\",\"sameAs\":[\"https:\\\/\\\/plus.google.com\\\/106007864994207794940\"],\"url\":\"https:\\\/\\\/www.redfin.com/news\\\/author\\\/doug-waderedfin-com\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Preserving colorized server logs - Redfin Real Estate News","description":"Use unix tools and node.js to preserve logs while outputting colorized output into the terminal","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.redfin.com\/news\/preserving-colorized-server-logs\/","og_locale":"en_US","og_type":"article","og_title":"Preserving colorized server logs","og_description":"Use unix tools and node.js to preserve logs while outputting colorized output into the terminal","og_url":"https:\/\/www.redfin.com\/news\/preserving-colorized-server-logs\/","og_site_name":"Redfin Real Estate News","article_publisher":"https:\/\/www.facebook.com\/redfin","article_published_time":"2016-02-08T16:00:57+00:00","article_modified_time":"2020-10-05T20:12:00+00:00","og_image":[{"url":"https:\/\/www.redfin.com\/news\/wp-content\/uploads\/2016\/02\/Screen-Shot-2016-02-04-at-2.36.40-PM.png","type":"","width":"","height":""}],"author":"Doug Wade","twitter_card":"summary_large_image","twitter_creator":"@redfin","twitter_site":"@redfin","twitter_misc":{"Written by":"Doug Wade","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.redfin.com\/news\/preserving-colorized-server-logs\/#article","isPartOf":{"@id":"https:\/\/www.redfin.com\/news\/preserving-colorized-server-logs\/"},"author":{"name":"Doug Wade","@id":"https:\/\/www.redfin.com\/news\/#\/schema\/person\/ce8e1b698aeb1c41384c05ef5c97ddbc"},"headline":"Preserving colorized server logs","datePublished":"2016-02-08T16:00:57+00:00","dateModified":"2020-10-05T20:12:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.redfin.com\/news\/preserving-colorized-server-logs\/"},"wordCount":420,"commentCount":0,"publisher":{"@id":"https:\/\/www.redfin.com\/news\/#organization"},"image":{"@id":"https:\/\/www.redfin.com\/news\/preserving-colorized-server-logs\/#primaryimage"},"thumbnailUrl":"https:\/\/www.redfin.com\/news\/wp-content\/uploads\/2016\/02\/Screen-Shot-2016-02-04-at-2.36.40-PM.png","articleSection":["Company News"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.redfin.com\/news\/preserving-colorized-server-logs\/#respond"]}],"copyrightYear":"2016","copyrightHolder":{"@id":"https:\/\/www.redfin.com\/news\/#organization"}},{"@type":"WebPage","@id":"https:\/\/www.redfin.com\/news\/preserving-colorized-server-logs\/","url":"https:\/\/www.redfin.com\/news\/preserving-colorized-server-logs\/","name":"Preserving colorized server logs - Redfin Real Estate News","isPartOf":{"@id":"https:\/\/www.redfin.com\/news\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.redfin.com\/news\/preserving-colorized-server-logs\/#primaryimage"},"image":{"@id":"https:\/\/www.redfin.com\/news\/preserving-colorized-server-logs\/#primaryimage"},"thumbnailUrl":"https:\/\/www.redfin.com\/news\/wp-content\/uploads\/2016\/02\/Screen-Shot-2016-02-04-at-2.36.40-PM.png","datePublished":"2016-02-08T16:00:57+00:00","dateModified":"2020-10-05T20:12:00+00:00","description":"Use unix tools and node.js to preserve logs while outputting colorized output into the terminal","breadcrumb":{"@id":"https:\/\/www.redfin.com\/news\/preserving-colorized-server-logs\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.redfin.com\/news\/preserving-colorized-server-logs\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.redfin.com\/news\/preserving-colorized-server-logs\/#primaryimage","url":"https:\/\/www.redfin.com\/news\/wp-content\/uploads\/2016\/02\/Screen-Shot-2016-02-04-at-2.36.40-PM.png","contentUrl":"https:\/\/www.redfin.com\/news\/wp-content\/uploads\/2016\/02\/Screen-Shot-2016-02-04-at-2.36.40-PM.png"},{"@type":"BreadcrumbList","@id":"https:\/\/www.redfin.com\/news\/preserving-colorized-server-logs\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.redfin.com\/news\/"},{"@type":"ListItem","position":2,"name":"Preserving colorized server logs"}]},{"@type":"WebSite","@id":"https:\/\/www.redfin.com\/news\/#website","url":"https:\/\/www.redfin.com\/news\/","name":"Redfin Real Estate News","description":"The latest real estate news and research from technology-powered residential real estate company, Redfin.","publisher":{"@id":"https:\/\/www.redfin.com\/news\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.redfin.com\/news\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.redfin.com\/news\/#organization","name":"Redfin","url":"https:\/\/www.redfin.com\/news\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.redfin.com\/news\/#\/schema\/logo\/image\/","url":"https:\/\/www.redfin.com\/news\/wp-content\/uploads\/2020\/10\/Redfin-News-Logo.png","contentUrl":"https:\/\/www.redfin.com\/news\/wp-content\/uploads\/2020\/10\/Redfin-News-Logo.png","width":1100,"height":235,"caption":"Redfin"},"image":{"@id":"https:\/\/www.redfin.com\/news\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/redfin","https:\/\/x.com\/redfin","https:\/\/www.instagram.com\/redfinrealestate\/","https:\/\/www.linkedin.com\/company\/redfin","https:\/\/www.pinterest.com\/redfin\/","https:\/\/en.wikipedia.org\/wiki\/Redfin"]},{"@type":"Person","@id":"https:\/\/www.redfin.com\/news\/#\/schema\/person\/ce8e1b698aeb1c41384c05ef5c97ddbc","name":"Doug Wade","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/1cb4c01b6eebf4bb7770e674ad8d70385f0e968d07b6345cd98a9c4f06020943?s=96&d=wp_user_avatar&r=g98695681813068d628dacc4b535b1a8d","url":"https:\/\/secure.gravatar.com\/avatar\/1cb4c01b6eebf4bb7770e674ad8d70385f0e968d07b6345cd98a9c4f06020943?s=96&d=wp_user_avatar&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1cb4c01b6eebf4bb7770e674ad8d70385f0e968d07b6345cd98a9c4f06020943?s=96&d=wp_user_avatar&r=g","caption":"Doug Wade"},"description":"I'm a software developer at Redfin on the Platforms team. I'm a cyclist, soccer hooligan, and beer enthusiast.","sameAs":["https:\/\/plus.google.com\/106007864994207794940"],"url":"https:\/\/www.redfin.com\/news\/author\/doug-waderedfin-com\/"}]}},"_links":{"self":[{"href":"https:\/\/www.redfin.com\/news\/wp-json\/wp\/v2\/posts\/44296","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.redfin.com\/news\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.redfin.com\/news\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.redfin.com\/news\/wp-json\/wp\/v2\/users\/13177"}],"replies":[{"embeddable":true,"href":"https:\/\/www.redfin.com\/news\/wp-json\/wp\/v2\/comments?post=44296"}],"version-history":[{"count":0,"href":"https:\/\/www.redfin.com\/news\/wp-json\/wp\/v2\/posts\/44296\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.redfin.com\/news\/wp-json\/wp\/v2\/media?parent=44296"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.redfin.com\/news\/wp-json\/wp\/v2\/categories?post=44296"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.redfin.com\/news\/wp-json\/wp\/v2\/tags?post=44296"},{"taxonomy":"dashboard","embeddable":true,"href":"https:\/\/www.redfin.com\/news\/wp-json\/wp\/v2\/dashboard?post=44296"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.redfin.com\/news\/wp-json\/wp\/v2\/coauthors?post=44296"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}