From 7ab89546c3f4fcc70039ff62878feea900a9788a Mon Sep 17 00:00:00 2001 From: Ford Hurley Date: Wed, 29 Jan 2014 09:59:36 -0500 Subject: [PATCH 1/2] Add example output screenshot --- README.rst | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.rst b/README.rst index a2108f4..86a6ea4 100644 --- a/README.rst +++ b/README.rst @@ -37,6 +37,9 @@ Arguments Examples ======== +.. image:: https://dl.dropboxusercontent.com/u/13472215/github/colorlog.png + :alt: Example output + The following code creates a ColoredFormatter for use in a logging setup, passing each arguments defaults to the constructor:: from colorlog import ColoredFormatter From db0ed74e61df253be2b41db81caedb5358e7be9f Mon Sep 17 00:00:00 2001 From: Ford Hurley Date: Wed, 29 Jan 2014 11:41:01 -0500 Subject: [PATCH 2/2] Add example image to repo, along with the script to create it --- README.rst | 2 +- doc/example.png | Bin 0 -> 10671 bytes doc/example.py | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 doc/example.png create mode 100644 doc/example.py diff --git a/README.rst b/README.rst index 86a6ea4..6892790 100644 --- a/README.rst +++ b/README.rst @@ -37,7 +37,7 @@ Arguments Examples ======== -.. image:: https://dl.dropboxusercontent.com/u/13472215/github/colorlog.png +.. image:: doc/example.png :alt: Example output The following code creates a ColoredFormatter for use in a logging setup, passing each arguments defaults to the constructor:: diff --git a/doc/example.png b/doc/example.png new file mode 100644 index 0000000000000000000000000000000000000000..aa8465f4379f998fb5fb11088a52acc8a7e82945 GIT binary patch literal 10671 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
  • k1dzZbU-*K*J zFeVoHz0-9F;`bXr%n^G;e@8&Ds1I}|v5+Vi>U*cipT7z=lbH?Qjte=i+jfQaZ|A9ZP;i%Qy9+IfI}*gBf0>bD80FF(EWMaH&*Z8rHdm2Pu4p@6m_KUs?#)S z48zQnnjluo>R`gtuTF|bCy^+@LH}zj-aVsG`|96yY3M!ha}<7LL)SvudljgV8Ua^= zA=>k_w2Xg(-v*%oNUIPEH3Z=i48fH`rV zHnJRlXq|Fi=iqNud?m~-Q^C9SE_|Uak%?|p>w?;`i3^nGg+cTCeDaG@jZnQ?VD1aW z8GmLPqJ+vqS&xJj6_pC>67S~U?*jqij~Kv17NV4*u40Xd-zxF7bH!0p`$+EGk@aq@ z6}(n*45A0RYKVBlJ!e8pek$#VZO1T|ir|LN7NW{5Pf-S&J?Pe(V=}iW=@`f_oK=@$ z|4%4VSCpc>=s|d}m)*qN0F9KTZCY|3*^MU?mb6lF^WV3`F_Xr51@PmfBJXg(8vX`c z2#VknfH1L;_7Zd)@M|vCK}f2u)jjs3U8q6S9?qT-5gi)`CCk+T8n|^dLp8coIHRSk zp~>^y^2K}FUvdXDGofP4=o^3VU2{`jRFt$B5b_69AqFGF-k?CY3^@u1y3vb|B^Eae zm}m1EHCCedc}DZ2DbB3k)`=!k zEen2brrTKEdQXdFr(XCjN?*JUgi6KgF5*}7l_N&A4?&c59=8mwqw*b`=Kr7`kR9+x zq=@IHo1LK0#sZTgW50hvkuUhz%oAv9kzy`##CRjJ^zzY&FwjZ3YE8G*1b2arUURKF zA*v2Ra%=8~ILvL0sa(zh8dCuWP7`|?LuMy&6t{&_Z?Y3sn`A&$*%KW47_UFT7;AQu zpgO)b;!>yUuqb(+$@7=E*`JL^)jQhItlz`Vh(~b%?fVq*-Y-{o*Y114e%GFl&U_8- zt-hZ+HYM7o(XAo19aEaBdtcI)**r=aoVfFEPLBI8%p}E

    yA0o=OCrUoAVWz80tO zoZ+U^EkiKaxJAW_Q9COC)f#+)ISbCIy}iD~Fd|9DCb*3=CYwDm1~A74a|RPyOg*MPt`J^2G~PjmXwHKFIA^3aNp@Rxj?sbAxDHwY zYO653rTuI^Nb+Rcf%Mb}1sJhJsKsj(J<~Tc3PP{{Pzr}`FummaGH7oQqIQEmG=L&W7jH_+Vt7>d&IK@TYEZA5i1ZodV;t%brQg7fM z{(bCHkuIJM=cvf0mh?cmuQ(eIE9We=7{kXmf0g=;aEcr_HHKp+I-&H7$+BH|$3t}S z68~jM-l!`K^)X}Nfo^NH%XHvZVdZZm%ME}ul6hSczG;Gw{*iTlASi|iE+3JrDs9J( zZJCUvGifT`&ps;)OXR+V7)k!8T0sUZI^*6R>P=I&uV-WxUZNG*l{*Z3aj}TutwL8e z21d_bXq8ezIXs6RlCK9>5qOk4MNv$+G2Q9$$3>mLZF{b{XqHd0Y2OD%%o!}J139le zKHM>3tmB&6K<*ltsc74IyhSIncTxJCslSUQ+Op(1)Sgm*SZ~yFJV`$iq2IUo1X|ER z!+tlID@mN1AL1|I z9U4s)bMkjWbtT&3=G-W|anlN6@DT)246%__h{(-8ov$%)pffVJ%yD~Rdc|dnG_;U7 zaEYbn8cWur#YpV@&1=X1OHHv#H0OKweOX6h-9}nw7r;imHVR zTu{W3pcv<}nV@%%Y+ZGKYmII#(&EU7CCN6Mn5}gtN9CwMC`7%trnz)r8PUNGGMa{+Ss@FNLIfpD?9s|(oWlg?Xq^` zw~Hki(DL+Id-_{j*s6$yp&o}|Z!eUpq-*?&n50NkqQ_q;5xrhZH;J;@ktpbF>H2Dr;uZvD>{5!vA-nC; zFPuso+U^-ebuq0a<*}q+N+Tj<+!|E5pyAOF@9UI!fQjx7=uL8Jr&C!h9P4qNNn?D5 z4dHm>8m#$!+aQz1A!PQPu>K9!#tx?gMhHGDalR#y+5LiD@D3~bTi&7+NKb!T|t?$2n*=nm58ycsS=1q$(GcS*|dDTv6+b9C{+px zE)^8mfPUyvONew*j-ivDdZd&+X94^R0{h%Zl3X{8&~R(2Z;w0^riYeE(WVRg literal 0 HcmV?d00001 diff --git a/doc/example.py b/doc/example.py new file mode 100644 index 0000000..0d4497a --- /dev/null +++ b/doc/example.py @@ -0,0 +1,48 @@ +#!/usr/bin/env python + +""" +python-colorlog example +""" + +import logging +from colorlog import ColoredFormatter + + +def setup_logger(): + """ + Returns a logger with a default ColoredFormatter. + """ + formatter = ColoredFormatter( + "%(log_color)s%(levelname)-8s%(reset)s %(blue)s%(message)s", + datefmt=None, + reset=True, + log_colors={ + 'DEBUG': 'cyan', + 'INFO': 'green', + 'WARNING': 'yellow', + 'ERROR': 'red', + 'CRITICAL': 'red', + } + ) + + logger = logging.getLogger('example') + handler = logging.StreamHandler() + handler.setFormatter(formatter) + logger.addHandler(handler) + logger.setLevel(logging.DEBUG) + + return logger + + +def main(): + logger = setup_logger() + + logger.debug('a debug message') + logger.info('an info message') + logger.warning('a warning message') + logger.error('an error message') + logger.critical('a critical message') + + +if __name__ == '__main__': + main()