Colores en la consola de JavaScript


879

¿Puede la consola JavaScript incorporada de Chrome mostrar colores?

Quiero errores en rojo, advertencias en naranja y console.log's en verde. ¿Es eso posible?


44
Puede obtener errores en rojo (el valor predeterminado) simplemente usando en console.error()lugar de console.log...
nrabinowitz

16
console.warn()también está disponible con un icono naranja de "advertencia", aunque el texto en sí sigue siendo negro.
Charlie Schliesser

3
console.log("%c", "background: red;padding: 100000px;");causará un comportamiento muy extraño en Chrome, especialmente al desplazarse por la consola.
programador5000


1
Escribí un pequeño paquete para colorear registros: colores de consola
vsync

Respuestas:


1390

En Chrome y Firefox (+31) puede agregar CSS en los console.logmensajes:

console.log('%c Oh my heavens! ', 'background: #222; color: #bada55');

Ejemplo de color de consola en Chrome

Lo mismo se puede aplicar para agregar múltiples CSS al mismo comando. sintaxis para mensajes de consola cromados de varios colores Fuente para Google Chrome: Presentación de Paul Irish & Webkit change
Fuente para Firefox: Firefox Web Console - Mensajes de estilo

Referencia de la API de la consola de Chrome: Referencia de la API de la consola



11
Para usar elementos de extensión HTML para diseñar
Hans

22
¿Por qué detenerse simplemente coloreando el texto? Pongamos también algunas imágenes en la consola:console.log('%c', 'padding:28px 119px;line-height:100px;background:url(http://cdn.sstatic.net/stackoverflow/img/sprites.png?v=6) no-repeat;');
Derek 朕 會 功夫

2
esto es lo mejor: background: #444; color: #bada55; padding: 2px; border-radius:2pxtodo se trata del radio del borde
Nick Sotiros

8
# bada55 de hecho.
Kyle Hotchkiss

572

Aquí hay un ejemplo extremo con la sombra del arco iris.

var css = "text-shadow: -1px -1px hsl(0,100%,50%), 1px 1px hsl(5.4, 100%, 50%), 3px 2px hsl(10.8, 100%, 50%), 5px 3px hsl(16.2, 100%, 50%), 7px 4px hsl(21.6, 100%, 50%), 9px 5px hsl(27, 100%, 50%), 11px 6px hsl(32.4, 100%, 50%), 13px 7px hsl(37.8, 100%, 50%), 14px 8px hsl(43.2, 100%, 50%), 16px 9px hsl(48.6, 100%, 50%), 18px 10px hsl(54, 100%, 50%), 20px 11px hsl(59.4, 100%, 50%), 22px 12px hsl(64.8, 100%, 50%), 23px 13px hsl(70.2, 100%, 50%), 25px 14px hsl(75.6, 100%, 50%), 27px 15px hsl(81, 100%, 50%), 28px 16px hsl(86.4, 100%, 50%), 30px 17px hsl(91.8, 100%, 50%), 32px 18px hsl(97.2, 100%, 50%), 33px 19px hsl(102.6, 100%, 50%), 35px 20px hsl(108, 100%, 50%), 36px 21px hsl(113.4, 100%, 50%), 38px 22px hsl(118.8, 100%, 50%), 39px 23px hsl(124.2, 100%, 50%), 41px 24px hsl(129.6, 100%, 50%), 42px 25px hsl(135, 100%, 50%), 43px 26px hsl(140.4, 100%, 50%), 45px 27px hsl(145.8, 100%, 50%), 46px 28px hsl(151.2, 100%, 50%), 47px 29px hsl(156.6, 100%, 50%), 48px 30px hsl(162, 100%, 50%), 49px 31px hsl(167.4, 100%, 50%), 50px 32px hsl(172.8, 100%, 50%), 51px 33px hsl(178.2, 100%, 50%), 52px 34px hsl(183.6, 100%, 50%), 53px 35px hsl(189, 100%, 50%), 54px 36px hsl(194.4, 100%, 50%), 55px 37px hsl(199.8, 100%, 50%), 55px 38px hsl(205.2, 100%, 50%), 56px 39px hsl(210.6, 100%, 50%), 57px 40px hsl(216, 100%, 50%), 57px 41px hsl(221.4, 100%, 50%), 58px 42px hsl(226.8, 100%, 50%), 58px 43px hsl(232.2, 100%, 50%), 58px 44px hsl(237.6, 100%, 50%), 59px 45px hsl(243, 100%, 50%), 59px 46px hsl(248.4, 100%, 50%), 59px 47px hsl(253.8, 100%, 50%), 59px 48px hsl(259.2, 100%, 50%), 59px 49px hsl(264.6, 100%, 50%), 60px 50px hsl(270, 100%, 50%), 59px 51px hsl(275.4, 100%, 50%), 59px 52px hsl(280.8, 100%, 50%), 59px 53px hsl(286.2, 100%, 50%), 59px 54px hsl(291.6, 100%, 50%), 59px 55px hsl(297, 100%, 50%), 58px 56px hsl(302.4, 100%, 50%), 58px 57px hsl(307.8, 100%, 50%), 58px 58px hsl(313.2, 100%, 50%), 57px 59px hsl(318.6, 100%, 50%), 57px 60px hsl(324, 100%, 50%), 56px 61px hsl(329.4, 100%, 50%), 55px 62px hsl(334.8, 100%, 50%), 55px 63px hsl(340.2, 100%, 50%), 54px 64px hsl(345.6, 100%, 50%), 53px 65px hsl(351, 100%, 50%), 52px 66px hsl(356.4, 100%, 50%), 51px 67px hsl(361.8, 100%, 50%), 50px 68px hsl(367.2, 100%, 50%), 49px 69px hsl(372.6, 100%, 50%), 48px 70px hsl(378, 100%, 50%), 47px 71px hsl(383.4, 100%, 50%), 46px 72px hsl(388.8, 100%, 50%), 45px 73px hsl(394.2, 100%, 50%), 43px 74px hsl(399.6, 100%, 50%), 42px 75px hsl(405, 100%, 50%), 41px 76px hsl(410.4, 100%, 50%), 39px 77px hsl(415.8, 100%, 50%), 38px 78px hsl(421.2, 100%, 50%), 36px 79px hsl(426.6, 100%, 50%), 35px 80px hsl(432, 100%, 50%), 33px 81px hsl(437.4, 100%, 50%), 32px 82px hsl(442.8, 100%, 50%), 30px 83px hsl(448.2, 100%, 50%), 28px 84px hsl(453.6, 100%, 50%), 27px 85px hsl(459, 100%, 50%), 25px 86px hsl(464.4, 100%, 50%), 23px 87px hsl(469.8, 100%, 50%), 22px 88px hsl(475.2, 100%, 50%), 20px 89px hsl(480.6, 100%, 50%), 18px 90px hsl(486, 100%, 50%), 16px 91px hsl(491.4, 100%, 50%), 14px 92px hsl(496.8, 100%, 50%), 13px 93px hsl(502.2, 100%, 50%), 11px 94px hsl(507.6, 100%, 50%), 9px 95px hsl(513, 100%, 50%), 7px 96px hsl(518.4, 100%, 50%), 5px 97px hsl(523.8, 100%, 50%), 3px 98px hsl(529.2, 100%, 50%), 1px 99px hsl(534.6, 100%, 50%), 7px 100px hsl(540, 100%, 50%), -1px 101px hsl(545.4, 100%, 50%), -3px 102px hsl(550.8, 100%, 50%), -5px 103px hsl(556.2, 100%, 50%), -7px 104px hsl(561.6, 100%, 50%), -9px 105px hsl(567, 100%, 50%), -11px 106px hsl(572.4, 100%, 50%), -13px 107px hsl(577.8, 100%, 50%), -14px 108px hsl(583.2, 100%, 50%), -16px 109px hsl(588.6, 100%, 50%), -18px 110px hsl(594, 100%, 50%), -20px 111px hsl(599.4, 100%, 50%), -22px 112px hsl(604.8, 100%, 50%), -23px 113px hsl(610.2, 100%, 50%), -25px 114px hsl(615.6, 100%, 50%), -27px 115px hsl(621, 100%, 50%), -28px 116px hsl(626.4, 100%, 50%), -30px 117px hsl(631.8, 100%, 50%), -32px 118px hsl(637.2, 100%, 50%), -33px 119px hsl(642.6, 100%, 50%), -35px 120px hsl(648, 100%, 50%), -36px 121px hsl(653.4, 100%, 50%), -38px 122px hsl(658.8, 100%, 50%), -39px 123px hsl(664.2, 100%, 50%), -41px 124px hsl(669.6, 100%, 50%), -42px 125px hsl(675, 100%, 50%), -43px 126px hsl(680.4, 100%, 50%), -45px 127px hsl(685.8, 100%, 50%), -46px 128px hsl(691.2, 100%, 50%), -47px 129px hsl(696.6, 100%, 50%), -48px 130px hsl(702, 100%, 50%), -49px 131px hsl(707.4, 100%, 50%), -50px 132px hsl(712.8, 100%, 50%), -51px 133px hsl(718.2, 100%, 50%), -52px 134px hsl(723.6, 100%, 50%), -53px 135px hsl(729, 100%, 50%), -54px 136px hsl(734.4, 100%, 50%), -55px 137px hsl(739.8, 100%, 50%), -55px 138px hsl(745.2, 100%, 50%), -56px 139px hsl(750.6, 100%, 50%), -57px 140px hsl(756, 100%, 50%), -57px 141px hsl(761.4, 100%, 50%), -58px 142px hsl(766.8, 100%, 50%), -58px 143px hsl(772.2, 100%, 50%), -58px 144px hsl(777.6, 100%, 50%), -59px 145px hsl(783, 100%, 50%), -59px 146px hsl(788.4, 100%, 50%), -59px 147px hsl(793.8, 100%, 50%), -59px 148px hsl(799.2, 100%, 50%), -59px 149px hsl(804.6, 100%, 50%), -60px 150px hsl(810, 100%, 50%), -59px 151px hsl(815.4, 100%, 50%), -59px 152px hsl(820.8, 100%, 50%), -59px 153px hsl(826.2, 100%, 50%), -59px 154px hsl(831.6, 100%, 50%), -59px 155px hsl(837, 100%, 50%), -58px 156px hsl(842.4, 100%, 50%), -58px 157px hsl(847.8, 100%, 50%), -58px 158px hsl(853.2, 100%, 50%), -57px 159px hsl(858.6, 100%, 50%), -57px 160px hsl(864, 100%, 50%), -56px 161px hsl(869.4, 100%, 50%), -55px 162px hsl(874.8, 100%, 50%), -55px 163px hsl(880.2, 100%, 50%), -54px 164px hsl(885.6, 100%, 50%), -53px 165px hsl(891, 100%, 50%), -52px 166px hsl(896.4, 100%, 50%), -51px 167px hsl(901.8, 100%, 50%), -50px 168px hsl(907.2, 100%, 50%), -49px 169px hsl(912.6, 100%, 50%), -48px 170px hsl(918, 100%, 50%), -47px 171px hsl(923.4, 100%, 50%), -46px 172px hsl(928.8, 100%, 50%), -45px 173px hsl(934.2, 100%, 50%), -43px 174px hsl(939.6, 100%, 50%), -42px 175px hsl(945, 100%, 50%), -41px 176px hsl(950.4, 100%, 50%), -39px 177px hsl(955.8, 100%, 50%), -38px 178px hsl(961.2, 100%, 50%), -36px 179px hsl(966.6, 100%, 50%), -35px 180px hsl(972, 100%, 50%), -33px 181px hsl(977.4, 100%, 50%), -32px 182px hsl(982.8, 100%, 50%), -30px 183px hsl(988.2, 100%, 50%), -28px 184px hsl(993.6, 100%, 50%), -27px 185px hsl(999, 100%, 50%), -25px 186px hsl(1004.4, 100%, 50%), -23px 187px hsl(1009.8, 100%, 50%), -22px 188px hsl(1015.2, 100%, 50%), -20px 189px hsl(1020.6, 100%, 50%), -18px 190px hsl(1026, 100%, 50%), -16px 191px hsl(1031.4, 100%, 50%), -14px 192px hsl(1036.8, 100%, 50%), -13px 193px hsl(1042.2, 100%, 50%), -11px 194px hsl(1047.6, 100%, 50%), -9px 195px hsl(1053, 100%, 50%), -7px 196px hsl(1058.4, 100%, 50%), -5px 197px hsl(1063.8, 100%, 50%), -3px 198px hsl(1069.2, 100%, 50%), -1px 199px hsl(1074.6, 100%, 50%), -1px 200px hsl(1080, 100%, 50%), 1px 201px hsl(1085.4, 100%, 50%), 3px 202px hsl(1090.8, 100%, 50%), 5px 203px hsl(1096.2, 100%, 50%), 7px 204px hsl(1101.6, 100%, 50%), 9px 205px hsl(1107, 100%, 50%), 11px 206px hsl(1112.4, 100%, 50%), 13px 207px hsl(1117.8, 100%, 50%), 14px 208px hsl(1123.2, 100%, 50%), 16px 209px hsl(1128.6, 100%, 50%), 18px 210px hsl(1134, 100%, 50%), 20px 211px hsl(1139.4, 100%, 50%), 22px 212px hsl(1144.8, 100%, 50%), 23px 213px hsl(1150.2, 100%, 50%), 25px 214px hsl(1155.6, 100%, 50%), 27px 215px hsl(1161, 100%, 50%), 28px 216px hsl(1166.4, 100%, 50%), 30px 217px hsl(1171.8, 100%, 50%), 32px 218px hsl(1177.2, 100%, 50%), 33px 219px hsl(1182.6, 100%, 50%), 35px 220px hsl(1188, 100%, 50%), 36px 221px hsl(1193.4, 100%, 50%), 38px 222px hsl(1198.8, 100%, 50%), 39px 223px hsl(1204.2, 100%, 50%), 41px 224px hsl(1209.6, 100%, 50%), 42px 225px hsl(1215, 100%, 50%), 43px 226px hsl(1220.4, 100%, 50%), 45px 227px hsl(1225.8, 100%, 50%), 46px 228px hsl(1231.2, 100%, 50%), 47px 229px hsl(1236.6, 100%, 50%), 48px 230px hsl(1242, 100%, 50%), 49px 231px hsl(1247.4, 100%, 50%), 50px 232px hsl(1252.8, 100%, 50%), 51px 233px hsl(1258.2, 100%, 50%), 52px 234px hsl(1263.6, 100%, 50%), 53px 235px hsl(1269, 100%, 50%), 54px 236px hsl(1274.4, 100%, 50%), 55px 237px hsl(1279.8, 100%, 50%), 55px 238px hsl(1285.2, 100%, 50%), 56px 239px hsl(1290.6, 100%, 50%), 57px 240px hsl(1296, 100%, 50%), 57px 241px hsl(1301.4, 100%, 50%), 58px 242px hsl(1306.8, 100%, 50%), 58px 243px hsl(1312.2, 100%, 50%), 58px 244px hsl(1317.6, 100%, 50%), 59px 245px hsl(1323, 100%, 50%), 59px 246px hsl(1328.4, 100%, 50%), 59px 247px hsl(1333.8, 100%, 50%), 59px 248px hsl(1339.2, 100%, 50%), 59px 249px hsl(1344.6, 100%, 50%), 60px 250px hsl(1350, 100%, 50%), 59px 251px hsl(1355.4, 100%, 50%), 59px 252px hsl(1360.8, 100%, 50%), 59px 253px hsl(1366.2, 100%, 50%), 59px 254px hsl(1371.6, 100%, 50%), 59px 255px hsl(1377, 100%, 50%), 58px 256px hsl(1382.4, 100%, 50%), 58px 257px hsl(1387.8, 100%, 50%), 58px 258px hsl(1393.2, 100%, 50%), 57px 259px hsl(1398.6, 100%, 50%), 57px 260px hsl(1404, 100%, 50%), 56px 261px hsl(1409.4, 100%, 50%), 55px 262px hsl(1414.8, 100%, 50%), 55px 263px hsl(1420.2, 100%, 50%), 54px 264px hsl(1425.6, 100%, 50%), 53px 265px hsl(1431, 100%, 50%), 52px 266px hsl(1436.4, 100%, 50%), 51px 267px hsl(1441.8, 100%, 50%), 50px 268px hsl(1447.2, 100%, 50%), 49px 269px hsl(1452.6, 100%, 50%), 48px 270px hsl(1458, 100%, 50%), 47px 271px hsl(1463.4, 100%, 50%), 46px 272px hsl(1468.8, 100%, 50%), 45px 273px hsl(1474.2, 100%, 50%), 43px 274px hsl(1479.6, 100%, 50%), 42px 275px hsl(1485, 100%, 50%), 41px 276px hsl(1490.4, 100%, 50%), 39px 277px hsl(1495.8, 100%, 50%), 38px 278px hsl(1501.2, 100%, 50%), 36px 279px hsl(1506.6, 100%, 50%), 35px 280px hsl(1512, 100%, 50%), 33px 281px hsl(1517.4, 100%, 50%), 32px 282px hsl(1522.8, 100%, 50%), 30px 283px hsl(1528.2, 100%, 50%), 28px 284px hsl(1533.6, 100%, 50%), 27px 285px hsl(1539, 100%, 50%), 25px 286px hsl(1544.4, 100%, 50%), 23px 287px hsl(1549.8, 100%, 50%), 22px 288px hsl(1555.2, 100%, 50%), 20px 289px hsl(1560.6, 100%, 50%), 18px 290px hsl(1566, 100%, 50%), 16px 291px hsl(1571.4, 100%, 50%), 14px 292px hsl(1576.8, 100%, 50%), 13px 293px hsl(1582.2, 100%, 50%), 11px 294px hsl(1587.6, 100%, 50%), 9px 295px hsl(1593, 100%, 50%), 7px 296px hsl(1598.4, 100%, 50%), 5px 297px hsl(1603.8, 100%, 50%), 3px 298px hsl(1609.2, 100%, 50%), 1px 299px hsl(1614.6, 100%, 50%), 2px 300px hsl(1620, 100%, 50%), -1px 301px hsl(1625.4, 100%, 50%), -3px 302px hsl(1630.8, 100%, 50%), -5px 303px hsl(1636.2, 100%, 50%), -7px 304px hsl(1641.6, 100%, 50%), -9px 305px hsl(1647, 100%, 50%), -11px 306px hsl(1652.4, 100%, 50%), -13px 307px hsl(1657.8, 100%, 50%), -14px 308px hsl(1663.2, 100%, 50%), -16px 309px hsl(1668.6, 100%, 50%), -18px 310px hsl(1674, 100%, 50%), -20px 311px hsl(1679.4, 100%, 50%), -22px 312px hsl(1684.8, 100%, 50%), -23px 313px hsl(1690.2, 100%, 50%), -25px 314px hsl(1695.6, 100%, 50%), -27px 315px hsl(1701, 100%, 50%), -28px 316px hsl(1706.4, 100%, 50%), -30px 317px hsl(1711.8, 100%, 50%), -32px 318px hsl(1717.2, 100%, 50%), -33px 319px hsl(1722.6, 100%, 50%), -35px 320px hsl(1728, 100%, 50%), -36px 321px hsl(1733.4, 100%, 50%), -38px 322px hsl(1738.8, 100%, 50%), -39px 323px hsl(1744.2, 100%, 50%), -41px 324px hsl(1749.6, 100%, 50%), -42px 325px hsl(1755, 100%, 50%), -43px 326px hsl(1760.4, 100%, 50%), -45px 327px hsl(1765.8, 100%, 50%), -46px 328px hsl(1771.2, 100%, 50%), -47px 329px hsl(1776.6, 100%, 50%), -48px 330px hsl(1782, 100%, 50%), -49px 331px hsl(1787.4, 100%, 50%), -50px 332px hsl(1792.8, 100%, 50%), -51px 333px hsl(1798.2, 100%, 50%), -52px 334px hsl(1803.6, 100%, 50%), -53px 335px hsl(1809, 100%, 50%), -54px 336px hsl(1814.4, 100%, 50%), -55px 337px hsl(1819.8, 100%, 50%), -55px 338px hsl(1825.2, 100%, 50%), -56px 339px hsl(1830.6, 100%, 50%), -57px 340px hsl(1836, 100%, 50%), -57px 341px hsl(1841.4, 100%, 50%), -58px 342px hsl(1846.8, 100%, 50%), -58px 343px hsl(1852.2, 100%, 50%), -58px 344px hsl(1857.6, 100%, 50%), -59px 345px hsl(1863, 100%, 50%), -59px 346px hsl(1868.4, 100%, 50%), -59px 347px hsl(1873.8, 100%, 50%), -59px 348px hsl(1879.2, 100%, 50%), -59px 349px hsl(1884.6, 100%, 50%), -60px 350px hsl(1890, 100%, 50%), -59px 351px hsl(1895.4, 100%, 50%), -59px 352px hsl(1900.8, 100%, 50%), -59px 353px hsl(1906.2, 100%, 50%), -59px 354px hsl(1911.6, 100%, 50%), -59px 355px hsl(1917, 100%, 50%), -58px 356px hsl(1922.4, 100%, 50%), -58px 357px hsl(1927.8, 100%, 50%), -58px 358px hsl(1933.2, 100%, 50%), -57px 359px hsl(1938.6, 100%, 50%), -57px 360px hsl(1944, 100%, 50%), -56px 361px hsl(1949.4, 100%, 50%), -55px 362px hsl(1954.8, 100%, 50%), -55px 363px hsl(1960.2, 100%, 50%), -54px 364px hsl(1965.6, 100%, 50%), -53px 365px hsl(1971, 100%, 50%), -52px 366px hsl(1976.4, 100%, 50%), -51px 367px hsl(1981.8, 100%, 50%), -50px 368px hsl(1987.2, 100%, 50%), -49px 369px hsl(1992.6, 100%, 50%), -48px 370px hsl(1998, 100%, 50%), -47px 371px hsl(2003.4, 100%, 50%), -46px 372px hsl(2008.8, 100%, 50%), -45px 373px hsl(2014.2, 100%, 50%), -43px 374px hsl(2019.6, 100%, 50%), -42px 375px hsl(2025, 100%, 50%), -41px 376px hsl(2030.4, 100%, 50%), -39px 377px hsl(2035.8, 100%, 50%), -38px 378px hsl(2041.2, 100%, 50%), -36px 379px hsl(2046.6, 100%, 50%), -35px 380px hsl(2052, 100%, 50%), -33px 381px hsl(2057.4, 100%, 50%), -32px 382px hsl(2062.8, 100%, 50%), -30px 383px hsl(2068.2, 100%, 50%), -28px 384px hsl(2073.6, 100%, 50%), -27px 385px hsl(2079, 100%, 50%), -25px 386px hsl(2084.4, 100%, 50%), -23px 387px hsl(2089.8, 100%, 50%), -22px 388px hsl(2095.2, 100%, 50%), -20px 389px hsl(2100.6, 100%, 50%), -18px 390px hsl(2106, 100%, 50%), -16px 391px hsl(2111.4, 100%, 50%), -14px 392px hsl(2116.8, 100%, 50%), -13px 393px hsl(2122.2, 100%, 50%), -11px 394px hsl(2127.6, 100%, 50%), -9px 395px hsl(2133, 100%, 50%), -7px 396px hsl(2138.4, 100%, 50%), -5px 397px hsl(2143.8, 100%, 50%), -3px 398px hsl(2149.2, 100%, 50%), -1px 399px hsl(2154.6, 100%, 50%); font-size: 40px;";

console.log("%cExample %s", css, 'all code runs happy');

ingrese la descripción de la imagen aquí


¿Cómo se detecta el soporte para esta función en un navegador? stackoverflow.com/questions/40428239/…
Muhammad Rehan Saeed

la tristeza es que el texto de alguna manera no se ve exactamente como su ejemplo (en mí o en cromos recientes, idk)
Asqan

3
en mi consola en la que se recorta en desbordando la altura de la línea ( Chrome 69, WIN7)
VSYNC

1
@Asqan Simplemente escriba un texto lo suficientemente grande como para que la consola lo ajuste y verá. : D
Vikrant

94

Puede usar una hoja de estilo personalizada para colorear su depurador. Puede poner este código C:\Documents and Settings\<User Name>\Local Settings\Application Data\Google\Chrome\User Data\Default\User StyleSheets\Custom.csssi está en WinXP, pero el directorio varía según el sistema operativo.

.console-error-level .console-message-text{
    color: red;
}

.console-warning-level .console-message-text {
    color: orange;
}

.console-log-level .console-message-text {
    color:green;
}

14
en Ubuntu 10.10, la hoja de estilo está en~/.config/google-chrome/Default/User\ StyleSheets/Custom.css
ciju

12
en Mac OS X está en ~/Library/Application\ Support/Google/Chrome/Default/User\ StyleSheets/Custom.css.
Lance Pollard

44
La ubicación de Windows 7 parece ser `C: \ Users \ <Nombre de usuario> \ AppData \ Local \ Google \ Chrome \ User Data \ Default \ User StyleSheets`. Además, hay una hoja de estilo de esquema de color solarizado para ello.
Weston C

1
Quería diseñar toda la línea, no solo el texto, así que elimino la .console-message-textclase. Además, los colores de fondo más agradables que encontré fueron #ffece6para errores, #fafad2advertencias y #f0f9ffpara la normalidad.
Matthew Clark el

2
Tenga en cuenta que esta hoja de estilo se aplica a todas las páginas que visita en Chrome, por lo que si elimina una clase para disminuir la especificidad, puede encontrar un sitio web que use sus estilos en un mensaje emergente o algo así.
Charlie Schliesser

57

Las versiones anteriores de Chrome no permiten que se console.log()muestre s en un color específico mediante programación, pero las llamadas console.error()pondrán un Xícono rojo en las líneas de error y harán que el texto sea rojo, y console.warn()obtendrá un !ícono amarillo .

Luego puede filtrar las entradas de la consola con los botones Todos, Errores, Advertencias y Registros debajo de la consola.


Resulta que Firebug ha admitido CSS personalizado para console.logs desde 2010 y Chrome se ha agregado a partir de Chrome 24.

console.log('%c Oh my heavens! ', 'background: #222; color: #bada55',
            'more text');

Cuando %caparece en cualquier parte del primer argumento , el siguiente argumento se usa como CSS para diseñar la línea de la consola. Otros argumentos se concatenan (como siempre ha sido el caso).


2
¿Tiene que ser el primer argumento? Este código no funcionará ... return console.log ("% s", mensaje, "% c% s", "color: #BBBBBB", get_type (mensaje));
Michael Minter

2
"Cuando% c aparece en cualquier parte del primer argumento, el siguiente argumento se usa como CSS para diseñar la línea de la consola" Corrección "Cuando% c aparece en cualquier parte de cualquier argumento, el siguiente argumento se usa como CSS para diseñar la línea de la consola salida después del% ceg i.imgur.com/msfPNbK.png
ChrisJJ

48

Escribí template-colors-web https://github.com/icodeforlove/Console.js para permitirnos hacer esto un poco más fácil

console.log(c`red ${c`green ${'blue'.bold}.blue`}.green`.red);

Lo anterior sería extremadamente difícil de hacer con el console.log predeterminado .

Para una demostración interactiva en vivo, haga clic aquí .

ingrese la descripción de la imagen aquí


2
A diferencia de la mayoría de las otras soluciones, esto también permite colorear variables que contienen cadenas.
máximo demandante

2
En realidad, esto no es realmente compatible, por ejemplo, actualmente no puede hacer esto, console.log(`this is inline ${'red'.red.bold} and this is more text`.grey)el estilo se detendría después del primer elemento diseñado
Chad Scira

2
Aunque no hay un color "en línea", todavía es posible hacer cosas como var txt = "asd"; txt.redo `${txt}`.red + `${txt}`.green. No conozco una manera de hacer esto con la %csintaxis que otros recomiendan. Así que gracias por construir la biblioteca
max pleaner

1
¿Cómo detectas el soporte para esta función en un navegador? ¿Miré el código de tu biblioteca y no pude detectarlo? stackoverflow.com/questions/40428239/…
Muhammad Rehan Saeed

1
@MuhammadRehanSaeed Detección del navegador
Chad Scira

32

Actualizar:

He escrito una biblioteca de JavaScript el año pasado para mí. Contiene otras características, por ejemplo, verbosidad para los registros de depuración y también proporciona un método de descarga de registros que exporta un archivo de registro. Eche un vistazo a la biblioteca JS Logger y su documentación.


Sé que es un poco tarde para responder, pero como el OP solicitó obtener mensajes de color personalizados en la consola para diferentes opciones. Todos pasan la propiedad de estilo de color en cada console.log()declaración que confunde al lector al crear complejidad en el código y también daña el aspecto general del código.

Lo que sugiero es escribir una función con pocos colores predeterminados (por ejemplo, éxito, error, información, advertencia, colores predeterminados) que se aplicará en función del parámetro pasado a la función.

Mejora la legibilidad y reduce la complejidad del código. Es demasiado fácil de mantener y ampliar según sus necesidades.


A continuación se muestra una función de JavaScript que debe escribir una vez y luego usarla una y otra vez.

function colorLog(message, color) {

    color = color || "black";

    switch (color) {
        case "success":  
             color = "Green"; 
             break;
        case "info":     
                color = "DodgerBlue";  
             break;
        case "error":   
             color = "Red";     
             break;
        case "warning":  
             color = "Orange";   
             break;
        default: 
             color = color;
    }

    console.log("%c" + message, "color:" + color);
}

Salida:

ingrese la descripción de la imagen aquí


El color predeterminado es el negro y no tiene que pasar ninguna palabra clave como parámetro en ese caso. En otros casos, debe pasar success, error, warning, or infopalabras clave para obtener los resultados deseados.

Aquí está trabajando JSFiddle . Ver salida en la consola del navegador.


Tenía en mente una implementación que era más log.info("this would be green"), etc. Lo suficientemente cercana.
Kyle Baker, el

Genial, pero considere que el enfoque estándar con console.error (), console.warn (), console.info () parece mejor en este escenario, ya que también 1) proporciona la semántica que perdemos aquí, lo que permite filtrar los mensajes por gravedad en la consola 2) use los colores que sean mejores para la configuración del usuario, por ejemplo. navegador en modo oscuro o modo de alto contraste
Paweł Bulwan

console.info () y console.log () muestra el mismo registro estándar y no se puede diferenciar con solo mirar la salida. Pero sí, console.warn () y console.error () se pueden usar para filtrar mensajes más adelante. Como preguntó el OP; Cómo imprimir registros de color en la consola. Creo que la respuesta es mejor de acuerdo con la pregunta formulada por el OP. No estamos filtrando mensajes, pero nos estamos centrando en imprimir registros de color. Realmente aprecio su sugerencia y el ejemplo se puede mejorar aún más para cumplir con sus requisitos también.
Suhaib Janjua

@SuhaibJanjua ¿Cómo hacer eso pero manteniendo la referencia del número de fila correcta del inspector?
LexaGC

25

De hecho, acabo de encontrar esto por accidente y siento curiosidad por lo que sucedería, pero en realidad puedes usar banderas de colores bash para configurar el color de una salida en Chrome:

console.log('\x1b[36m Hello \x1b[34m Colored \x1b[35m World!');
console.log('\x1B[31mHello\x1B[34m World');
console.log('\x1b[43mHighlighted');

Salida:

Hola mundo rojo y azul

ingrese la descripción de la imagen aquí

Consulte este enlace para ver cómo funcionan las banderas de color: https://misc.flogisoft.com/bash/tip_colors_and_formatting

Básicamente use el \x1bo \x1Ben lugar de \e. p.ej. \x1b[31my todo el texto después de eso se cambiará al nuevo color.

Sin embargo, no he probado esto en ningún otro navegador, pero pensé que valía la pena mencionarlo.


3
Esto es genial, pero parece ser específico de cromo / cromo. Lo he comprobado en Firefox 65 no funciona
navigaid

Sí, Firefox también te advierte sobre pegar en la consola. Para Firefox tendrás que usar% c y estilos.
James Heazlewood


20

Hay una serie de funciones incorporadas para colorear el registro de la consola:

//For pink background and red text
console.error("Hello World");  

//For yellow background and brown text
console.warn("Hello World");  

//For just a INFO symbol at the beginning of the text
console.info("Hello World");  

//for custom colored text
console.log('%cHello World','color:blue');
//here blue could be replaced by any color code

//for custom colored text with custom background text
console.log('%cHello World','background:red;color:#fff')

44
parece que console.info()ya no agrega el ícono de información ... no estoy seguro de cuándo sucedió esto. Ahora no es diferente de console.log () (al menos en Chrome y Firefox)
Brad Kent

15
colors = {
    reset: '\033[0m',

    //text color

    black: '\033[30m',
    red: '\033[31m',
    green: '\033[32m',
    yellow: '\033[33m',
    blue: '\033[34m',
    magenta: '\033[35m',
    cyan: '\033[36m',
    white: '\033[37m',

    //background color

    blackBg: '\033[40m',
    redBg: '\033[41m',
    greenBg: '\033[42m',
    yellowBg: '\033[43m',
    blueBg: '\033[44m',
    magentaBg: '\033[45m',
    cyanBg: '\033[46m',
    whiteBg: '\033[47m'
}

console.log('\033[31m this is red color on text');
console.log('\033[0m this is reset');
console.log('\033[41m this is red color on background');

44
O console.log(color.red+' this is red color on text');como colors.red ya asignado.
vusan

66
No hace nada en Chrome y Safari.
mauron85

44
@ mauron85 No está en la respuesta, pero eso es para Node.js.
Gustavo Rodrigues

Sí, estuve confundido por un minuto medio impresionado de que Chrome estaba apoyando secuencias de escape
i336_

1
@ i336_: funciona (Chrome 69 aquí). puede volver a su estado anterior de media impresionado;)
VSYNC

13

Google ha documentado esto https://developers.google.com/web/tools/chrome-devtools/console/console-write#styling_console_output_with_css

El especificador de formato CSS le permite personalizar la pantalla en la consola. Comience la cadena con el especificador y proporcione el estilo que desea aplicar como segundo parámetro.

Un ejemplo:

console.log("%cThis will be formatted with large, blue text", "color: blue; font-size: x-large");

1
"Google ha documentado este desarrollador.chrome.com/devtools/docs/… ." Ahora no se menciona el estilo de la consola allí.
ChrisJJ


9

sistema de plantillas, útil si desea crear texto de línea colorido sin crear un estilo completo para cada bloque

var tpl = 'background-color:greenyellow; border:3px solid orange; font-size:18px; font-weight: bold;padding:3px 5px;color:';
console.log('%cNo #1' + '.%cRed Text' + '%cBlue Text', 
             tpl+'magenta', tpl+'red', tpl+'blue');

registro de consola colorido


8

Mira esto:

Animación en consola, más CSS

(function() {
  var frame = 0;
  var frames = [
    "This",
    "is",
    "SPARTA!",
    " ",
    "SPARTA!",
    " ",
    "SPARTA!",
    " ",
    "SPARTA!",
    " ",
    "SPARTA!",
    " ",
    "SPARTA!"
  ];
  var showNext = () => {
    console.clear();
    console.log(
      `%c `,
      "background: red; color: white; font-size: 15px; padding: 3px 41%;"
    );
    console.log(
      `%c ${frames[frame]}`,
      "background: red; color: white; font-size: 25px; padding: 3px 40%;"
    );
    console.log(
      `%c `,
      "background: red; color: white; font-size: 15px; padding: 3px 41%;"
    );
    setTimeout(
      showNext,
      frames[frame] === "SPARTA!" || frames[frame] === " " ? 100 : 1500
    );
    // next frame and loop
    frame++;
    if (frame >= frames.length) {
      frame = 0;
    }
  };
  showNext();
})();

https://jsfiddle.net/a8y3jhfL/

puedes pegar ASCII en cada cuadro para ver una animación ASCII


6

de Chrome 60, eliminaron la facilidad de color de texto azul al escribir console.info y hacen muchos cambios en la API de la consola.

si escribe un literal de cadena en el patrón es6, usando los backticks `` como el identificador (llamado como cadena de plantilla) en console.log () , a continuación puede colorear la salida de la consola.

console.log(`%cToday date=>%c${new Date()}`,`color:#F74C2F`, `color:green`);
// output :Today date (in red color) => Date (in green color)

3

Para encadenar estilos CSS3 que abarcan varias líneas, puede hacer esto,

var styles = [
    'background: linear-gradient(#D33106, #571402)'
    , 'border: 1px solid #3E0E02'
    , 'color: white'
    , 'display: block'
    , 'text-shadow: 0 1px 0 rgba(0, 0, 0, 0.3)'
    , 'box-shadow: 0 1px 0 rgba(255, 255, 255, 0.4) inset, 0 5px 3px -5px rgba(0, 0, 0, 0.5), 0 -13px 5px -10px rgba(255, 255, 255, 0.4) inset'
    , 'line-height: 40px'
    , 'text-align: center'
    , 'font-weight: bold'
].join(';');

console.log('%c a spicy log message ?', styles);

Resultado

ingrese la descripción de la imagen aquí

Encuentre más: - https://coderwall.com/p/fskzdw/colorful-console-log

Salud.


3

Escribí un reallllllllllllllllly simpleHace varios años plugin para mí:

Para agregar a su página, todo lo que necesita hacer es poner esto en la cabeza:

<script src="https://jackcrane.github.io/static/cdn/jconsole.js" type="text/javascript">

Luego en JS:

jconsole.color.red.log('hellllooo world');

El marco tiene código para:

jconsole.color.red.log();
jconsole.color.orange.log();
jconsole.color.yellow.log();
jconsole.color.green.log();
jconsole.color.blue.log();
jconsole.color.purple.log();
jconsole.color.teal.log();

tanto como:

jconsole.css.log("hello world","color:red;");

para cualquier otro css. Lo anterior está diseñado con la siguiente sintaxis:

jconsole.css.log(message to log,css code to style the logged message)

esfuerzos sobresalientes
dhirajforyou

2

Hace poco quería resolver un problema similar y construí una pequeña función para colorear solo las palabras clave que me importaban y que fueran fácilmente identificables entre llaves. {keyword} .

Esto funcionó a las mil maravillas:

var text = 'some text with some {special} formatting on this {keyword} and this {keyword}'
var splitText = text.split(' ');
var cssRules = [];
var styledText = '';
_.each(splitText, (split) => {
    if (/^\{/.test(split)) {
        cssRules.push('color:blue');
    } else {
        cssRules.push('color:inherit')
    }
    styledText += `%c${split} `
});
console.log(styledText , ...cssRules)

ingrese la descripción de la imagen aquí

técnicamente, podría cambiar la declaración if con una declaración switch / case para permitir múltiples estilos por diferentes razones


2

Dudo que alguien realmente lo vea, pero tengo una solución simple para aquellos que desean mezclar varios colores en la misma línea:

export enum Colors {
    Black = '\033[30m',
    Red = '\x1b[31m',
    Green = '\x1b[32m',
    Yellow = '\x1b[33m',
    Blue = '\033[34m',
    Magenta = '\033[35m',
    Cyan = '\033[36m',
    White = '\033[37m'
}


function color(text: string, color: color: Colors) {
    return `${color}${text}\x1b[0m`;
}


console.log(`This is ${color('green text', Colors.Green)} but this is black. This is red ${color('red', Colors.Red)} etc`);

Lo vi, gracias! Y aquí hay un enlace que le dará aún más golosinas como que: Hacer CONSOLE.LOG () de salida de colores ... .
Rene van der Lende

1

Prueba esto:

var funcNames = ["log", "warn", "error"];
var colors = ['color:green', 'color:orange', 'color:red'];

for (var i = 0; i < funcNames.length; i++) {
    let funcName = funcNames[i];
    let color = colors[i];
    let oldFunc = console[funcName];
    console[funcName] = function () {
        var args = Array.prototype.slice.call(arguments);
        if (args.length) args = ['%c' + args[0]].concat(color, args.slice(1));
        oldFunc.apply(null, args);
    };
}

ahora todos son como querías:

console.log("Log is green.");
console.warn("Warn is orange.");
console.error("Error is red.");

nota: el formato como console.log("The number = %d", 123);no está roto.


1

Escribí un npmmódulo que le da a uno la posibilidad de pasar:

  • Colores personalizados : tanto para texto como para fondo;
  • Prefijos : para ayudar a identificar la fuente, como[MyFunction]
  • Tipos - como warning, success, infoy otros tipos de mensaje predefinido

https://www.npmjs.com/package/console-log-plus

Salida (con prefijos personalizados):

ingrese la descripción de la imagen aquí

clp({
  type: 'ok',
  prefix: 'Okay',
  message: 'you bet'
});
clp({
  type: 'error',
  prefix: 'Ouch',
  message: 'you bet'
});
clp({
  type: 'warning',
  prefix: 'I told you',
  message: 'you bet'
});
clp({
  type: 'attention',
  prefix: 'Watch it!',
  message: 'you bet'
});
clp({
  type: 'success',
  prefix: 'Awesome!',
  message: 'you bet'
});
clp({
  type: 'info',
  prefix: 'FYI',
  message: 'you bet'
});
clp({
  type: 'default',
  prefix: 'No fun',
  message: 'you bet'
});

Salida (sin prefijos personalizados):

ingrese la descripción de la imagen aquí

Entrada :

clp({
  type: 'ok',
  message: 'you bet'
});
clp({
  type: 'error',
  message: 'you bet'
});
clp({
  type: 'warning',
  message: 'you bet'
});
clp({
  type: 'attention',
  message: 'you bet'
});
clp({
  type: 'success',
  message: 'you bet'
});
clp({
  type: 'info',
  message: 'you bet'
});
clp({
  type: 'default',
  message: 'you bet'
});

Para asegurarme de que el usuario no muestre un color no válido, también escribí un validador de color . Se validará por colores name, hex, rgb, rgba, hslo hslavalores


0
// log in color 
// consolelog({"color":"red","background-color":"blue"},1,2,3)

// consolelog({"color":"red"},1,2,3)
// consolelog(1,2,3)
function consolelog()
{
    var style=Array.prototype.slice.call(arguments,0,1)||["black"];
    var vars=(Array.prototype.slice.call(arguments,1)||[""])
    var message=vars.join(" ")
    var colors = 
        {
            warn:
                {
                    "background-color"  :"yellow",
                    "color"             :"red"
                },
            error:
                {
                    "background-color"  :"red",
                    "color"             :"yellow"
                },
            highlight:
                {
                    "background-color"  :"yellow",
                    "color"             :"black"
                },
            success : "green", 
            info    : "dodgerblue"  

        }
    var givenstyle=style[0];
    var colortouse= colors[givenstyle] || givenstyle;
    if(typeof colortouse=="object")
    {
        colortouse= printobject(colortouse)
    }
    if(colortouse)
    {
        colortouse=(colortouse.match(/\W/)?"":"color:")+colortouse;
    }
    function printobject(o){
        var str='';

        for(var p in o){
            if(typeof o[p] == 'string'){
                str+= p + ': ' + o[p]+'; \n';
            }else{
            str+= p + ': { \n' + print(o[p]) + '}';
            }
        }

        return str;
    }
    if(colortouse)
    {
        console.log("%c" + message, colortouse);
    }
    else
    {
        console.log.apply(null,vars);
    }
}
console.logc=consolelog;

2
Si bien este fragmento de código puede resolver el problema, no explica por qué o cómo responde la pregunta. Por favor, incluya una explicación de su código , como que realmente ayuda a mejorar la calidad de su puesto. Recuerde que está respondiendo la pregunta para los lectores en el futuro, y que esas personas podrían no conocer los motivos de su sugerencia de código.
Luca Kiebel
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.