\documentclass[10pt,a4paper]{article} % Packages \usepackage{fancyhdr} % For header and footer \usepackage{multicol} % Allows multicols in tables \usepackage{tabularx} % Intelligent column widths \usepackage{tabulary} % Used in header and footer \usepackage{hhline} % Border under tables \usepackage{graphicx} % For images \usepackage{xcolor} % For hex colours %\usepackage[utf8x]{inputenc} % For unicode character support \usepackage[T1]{fontenc} % Without this we get weird character replacements \usepackage{colortbl} % For coloured tables \usepackage{setspace} % For line height \usepackage{lastpage} % Needed for total page number \usepackage{seqsplit} % Splits long words. %\usepackage{opensans} % Can't make this work so far. Shame. Would be lovely. \usepackage[normalem]{ulem} % For underlining links % Most of the following are not required for the majority % of cheat sheets but are needed for some symbol support. \usepackage{amsmath} % Symbols \usepackage{MnSymbol} % Symbols \usepackage{wasysym} % Symbols %\usepackage[english,german,french,spanish,italian]{babel} % Languages % Document Info \author{AlienShore} \pdfinfo{ /Title (mclog-usage-guidelines.pdf) /Creator (Cheatography) /Author (AlienShore) /Subject (MCLog Usage Guidelines Cheat Sheet) } % Lengths and widths \addtolength{\textwidth}{6cm} \addtolength{\textheight}{-1cm} \addtolength{\hoffset}{-3cm} \addtolength{\voffset}{-2cm} \setlength{\tabcolsep}{0.2cm} % Space between columns \setlength{\headsep}{-12pt} % Reduce space between header and content \setlength{\headheight}{85pt} % If less, LaTeX automatically increases it \renewcommand{\footrulewidth}{0pt} % Remove footer line \renewcommand{\headrulewidth}{0pt} % Remove header line \renewcommand{\seqinsert}{\ifmmode\allowbreak\else\-\fi} % Hyphens in seqsplit % This two commands together give roughly % the right line height in the tables \renewcommand{\arraystretch}{1.3} \onehalfspacing % Commands \newcommand{\SetRowColor}[1]{\noalign{\gdef\RowColorName{#1}}\rowcolor{\RowColorName}} % Shortcut for row colour \newcommand{\mymulticolumn}[3]{\multicolumn{#1}{>{\columncolor{\RowColorName}}#2}{#3}} % For coloured multi-cols \newcolumntype{x}[1]{>{\raggedright}p{#1}} % New column types for ragged-right paragraph columns \newcommand{\tn}{\tabularnewline} % Required as custom column type in use % Font and Colours \definecolor{HeadBackground}{HTML}{333333} \definecolor{FootBackground}{HTML}{666666} \definecolor{TextColor}{HTML}{333333} \definecolor{DarkBackground}{HTML}{82A356} \definecolor{LightBackground}{HTML}{F7F9F4} \renewcommand{\familydefault}{\sfdefault} \color{TextColor} % Header and Footer \pagestyle{fancy} \fancyhead{} % Set header to blank \fancyfoot{} % Set footer to blank \fancyhead[L]{ \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{C} \SetRowColor{DarkBackground} \vspace{-7pt} {\parbox{\dimexpr\textwidth-2\fboxsep\relax}{\noindent \hspace*{-6pt}\includegraphics[width=5.8cm]{/web/www.cheatography.com/public/images/cheatography_logo.pdf}} } \end{tabulary} \columnbreak \begin{tabulary}{11cm}{L} \vspace{-2pt}\large{\bf{\textcolor{DarkBackground}{\textrm{MCLog Usage Guidelines Cheat Sheet}}}} \\ \normalsize{by \textcolor{DarkBackground}{AlienShore} via \textcolor{DarkBackground}{\uline{cheatography.com/19295/cs/2349/}}} \end{tabulary} \end{multicols}} \fancyfoot[L]{ \footnotesize \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{LL} \SetRowColor{FootBackground} \mymulticolumn{2}{p{5.377cm}}{\bf\textcolor{white}{Cheatographer}} \\ \vspace{-2pt}AlienShore \\ \uline{cheatography.com/alienshore} \\ \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Cheat Sheet}} \\ \vspace{-2pt}Published 17th July, 2014.\\ Updated 13th May, 2016.\\ Page {\thepage} of \pageref{LastPage}. \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Sponsor}} \\ \SetRowColor{white} \vspace{-5pt} %\includegraphics[width=48px,height=48px]{dave.jpeg} Measure your website readability!\\ www.readability-score.com \end{tabulary} \end{multicols}} \begin{document} \raggedright \raggedcolumns % Set font size to small. Switch to any value % from this page to resize cheat sheet text: % www.emerson.emory.edu/services/latex/latex_169.html \footnotesize % Small font. \begin{multicols*}{2} \begin{tabularx}{8.4cm}{p{0.76 cm} x{1.368 cm} x{5.472 cm} } \SetRowColor{DarkBackground} \mymulticolumn{3}{x{8.4cm}}{\bf\textcolor{white}{Message Severity}} \tn % Row 0 \SetRowColor{LightBackground} -1 & NONE & Do not use, system use only \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} 0 & CRIT & Something has gone wrong and immediate attention is required \tn % Row Count 4 (+ 3) % Row 2 \SetRowColor{LightBackground} 1 & ERR & Something has gone wrong and should be addressed, but does not require immediate attention \tn % Row Count 8 (+ 4) % Row 3 \SetRowColor{white} 2 & WARN & Something unexpected happened, but is not necessarily a bug \tn % Row Count 11 (+ 3) % Row 4 \SetRowColor{LightBackground} 3 & INFO & Progress output or general information. INFO logging and a properly configured LogToConsole listener may be used in place of Console.WriteLine() \tn % Row Count 17 (+ 6) % Row 5 \SetRowColor{white} 4 & DEBUG & Debug information, info dumps, etc. \tn % Row Count 19 (+ 2) % Row 6 \SetRowColor{LightBackground} 5 & DEBUG2 & Debug information, info dumps, etc. \tn % Row Count 21 (+ 2) % Row 7 \SetRowColor{white} 6 & DEBUG3 & Debug information, info dumps, etc. \tn % Row Count 23 (+ 2) % Row 8 \SetRowColor{LightBackground} 10 & \seqsplit{REPORTING} & Reporting and performance logging \tn % Row Count 25 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}---} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{3.52 cm} x{4.48 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Format Tokens}} \tn % Row 0 \SetRowColor{LightBackground} \{attr1\} - \{attr8\} & Attributes 1 through 8 \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} \{errorclass\} & Error Class \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} \{errorsubclass\} & Error Subclass \tn % Row Count 3 (+ 1) % Row 3 \SetRowColor{white} \{app\} & The Application Name \tn % Row Count 4 (+ 1) % Row 4 \SetRowColor{LightBackground} \{assemblyversion\} & The Assembly Version \tn % Row Count 5 (+ 1) % Row 5 \SetRowColor{white} \{machinename\} & Machine Name \tn % Row Count 6 (+ 1) % Row 6 \SetRowColor{LightBackground} \{processid\} & Process ID \tn % Row Count 7 (+ 1) % Row 7 \SetRowColor{white} \{threadid\} & Thread ID \tn % Row Count 8 (+ 1) % Row 8 \SetRowColor{LightBackground} \{msgid\} & Message ID \tn % Row Count 9 (+ 1) % Row 9 \SetRowColor{white} \{severity\} & Severity \tn % Row Count 10 (+ 1) % Row 10 \SetRowColor{LightBackground} \{source\} & Source \tn % Row Count 11 (+ 1) % Row 11 \SetRowColor{white} \{tag\} & Tag (from Config) \tn % Row Count 12 (+ 1) % Row 12 \SetRowColor{LightBackground} \{eventtime\} & Event Date \tn % Row Count 13 (+ 1) % Row 13 \SetRowColor{white} \{day\} & Event Date - Day \tn % Row Count 14 (+ 1) % Row 14 \SetRowColor{LightBackground} \{month\} & Event Date - Month \tn % Row Count 15 (+ 1) % Row 15 \SetRowColor{white} \{year\} & Event Date - Year \tn % Row Count 16 (+ 1) % Row 16 \SetRowColor{LightBackground} \{hour\} & Event Date - Hour \tn % Row Count 17 (+ 1) % Row 17 \SetRowColor{white} \{minute\} & Event Date - Minute \tn % Row Count 18 (+ 1) % Row 18 \SetRowColor{LightBackground} \{second\} & Event Date - Second \tn % Row Count 19 (+ 1) % Row 19 \SetRowColor{white} \{message\} & Message Body \tn % Row Count 20 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{Column Break}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{} \tn % Row Count 0 (+ 0) \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{2.08 cm} x{5.92 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Severity Filter}} \tn % Row 0 \SetRowColor{LightBackground} EnumValue & Integer representing any valid message severity\{\{nl\}\}("2" = WARN) \tn % Row Count 3 (+ 3) % Row 1 \SetRowColor{white} \seqsplit{EnumValueRange} & Inclusive range of message severities\{\{nl\}\}("0-2" = CRIT, ERR, \& WARN) \tn % Row Count 6 (+ 3) % Row 2 \SetRowColor{LightBackground} EnumName & String representing a severity enum name\{\{nl\}\}("Crit" = CRIT) \tn % Row Count 9 (+ 3) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{Comma separated list of expressions (EnumValues, EnumValueRanges, and/or EnumNames) representing the message severities to be processed by a log listener ("1-3, Debug, 10" = ERR, WARN, INFO, DEBUG, \& REPORTING)} \tn \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{1.444 cm} x{2.052 cm} x{4.104 cm} } \SetRowColor{DarkBackground} \mymulticolumn{3}{x{8.4cm}}{\bf\textcolor{white}{MCLog.LogToConsole}} \tn % Row 0 \SetRowColor{LightBackground} \seqsplit{SeverityFilter} & CRIT, ERR\{\{nobreak\}\} & Filter describing severities to log \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} Format & \{message\} & Format to use for output\{\{nl\}\}{\emph{\{Supports format tokens\}}} \tn % Row Count 5 (+ 3) \hhline{>{\arrayrulecolor{DarkBackground}}---} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{2.812 cm} x{1.596 cm} x{3.192 cm} } \SetRowColor{DarkBackground} \mymulticolumn{3}{x{8.4cm}}{\bf\textcolor{white}{MCLog.LogToDB2}} \tn % Row 0 \SetRowColor{LightBackground} SeverityFilter\{\{nobreak\}\} & CRIT, ERR\{\{nobreak\}\} & Filter describing severities to log \tn % Row Count 3 (+ 3) % Row 1 \SetRowColor{white} {\bf{ConnectionString}} & & Name of connection string to use \tn % Row Count 5 (+ 2) % Row 2 \SetRowColor{LightBackground} MaxAge & \seqsplit{MaxValue} & TimeSpan indicating how long to retain logging \tn % Row Count 8 (+ 3) % Row 3 \SetRowColor{white} MaxDays & & Number of days to retain logging\{\{nl\}\}{\emph{(overridden by MaxAge)}} \tn % Row Count 12 (+ 4) % Row 4 \SetRowColor{LightBackground} CleanupProbability\{\{nl\}\}Denominator & 1000 & Probability of triggering cleanup\{\{nl\}\}{\emph{(Probability = 1/Denominator)}} \tn % Row Count 17 (+ 5) \hhline{>{\arrayrulecolor{DarkBackground}}---} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{2.204 cm} x{1.824 cm} x{3.572 cm} } \SetRowColor{DarkBackground} \mymulticolumn{3}{x{8.4cm}}{\bf\textcolor{white}{MCLog.LogToEmail}} \tn % Row 0 \SetRowColor{LightBackground} SeverityFilter\{\{nobreak\}\} & CRIT, ERR\{\{nobreak\}\} & Filter describing which severities to log \tn % Row Count 3 (+ 3) % Row 1 \SetRowColor{white} {\bf{MailServer}} & & SMTP server address \tn % Row Count 5 (+ 2) % Row 2 \SetRowColor{LightBackground} Port & 25 & SMTP server port \tn % Row Count 6 (+ 1) % Row 3 \SetRowColor{white} {\bf{From}} & & Email message from address \tn % Row Count 8 (+ 2) % Row 4 \SetRowColor{LightBackground} {\bf{To}} & & Comma delimited list of email message recipient addresses \tn % Row Count 12 (+ 4) % Row 5 \SetRowColor{white} {\bf{Subject}} & & Email message subject\{\{nl\}\}{\emph{\{Supports format tokens\}}} \tn % Row Count 15 (+ 3) % Row 6 \SetRowColor{LightBackground} Body & \{message\}\{\{nl\}\}... & Email message body\{\{nl\}\}{\emph{\{Supports format tokens\}}} \tn % Row Count 18 (+ 3) \hhline{>{\arrayrulecolor{DarkBackground}}---} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{2.204 cm} x{1.824 cm} x{3.572 cm} } \SetRowColor{DarkBackground} \mymulticolumn{3}{x{8.4cm}}{\bf\textcolor{white}{MCLog.LogToEventLog}} \tn % Row 0 \SetRowColor{LightBackground} SeverityFilter\{\{nobreak\}\} & CRIT, ERR\{\{nobreak\}\} & Filter describing severities to log \tn % Row Count 3 (+ 3) % Row 1 \SetRowColor{white} EventLogSource\{\{nobreak\}\} & \seqsplit{Application} Error & Source string to use in event log message \tn % Row Count 6 (+ 3) % Row 2 \SetRowColor{LightBackground} Format & \{message\}\{\{nl\}\}... & Format to use for output\{\{nl\}\}{\emph{\{Supports format tokens\}}} \tn % Row Count 10 (+ 4) \hhline{>{\arrayrulecolor{DarkBackground}}---} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{2.812 cm} x{1.596 cm} x{3.192 cm} } \SetRowColor{DarkBackground} \mymulticolumn{3}{x{8.4cm}}{\bf\textcolor{white}{MCLog.LogToFile}} \tn % Row 0 \SetRowColor{LightBackground} SeverityFilter\{\{nobreak\}\} & CRIT, ERR\{\{nobreak\}\} & Filter describing severities to log \tn % Row Count 3 (+ 3) % Row 1 \SetRowColor{white} {\bf{BasePath}} & & Absolute log file path\{\{nl\}\}{\emph{(combined with FilePath)}} \tn % Row Count 7 (+ 4) % Row 2 \SetRowColor{LightBackground} {\bf{FilePath}} & & Relative log file path and file name\{\{nl\}\}{\emph{\{Supports format tokens\}}} \tn % Row Count 12 (+ 5) % Row 3 \SetRowColor{white} Format & \seqsplit{Event...} & Format to use for output\{\{nl\}\}{\emph{\{Supports format tokens\}}} \tn % Row Count 16 (+ 4) % Row 4 \SetRowColor{LightBackground} MaxRetries & 3 & Number of retries when writing to file fails \tn % Row Count 19 (+ 3) % Row 5 \SetRowColor{white} RetryDelay & 250ms & TimeSpan indicating pause between retries when writing to file fails \tn % Row Count 24 (+ 5) % Row 6 \SetRowColor{LightBackground} Delimiter & -{}-{}-{}--... & Delimiter separating messages in file \tn % Row Count 27 (+ 3) % Row 7 \SetRowColor{white} MaxAge & \seqsplit{MaxValue} & TimeSpan indicating how long to retain logging \tn % Row Count 30 (+ 3) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{8.4cm}{x{2.812 cm} x{1.596 cm} x{3.192 cm} } \SetRowColor{DarkBackground} \mymulticolumn{3}{x{8.4cm}}{\bf\textcolor{white}{MCLog.LogToFile (cont)}} \tn % Row 8 \SetRowColor{LightBackground} MaxDays & & Number of days to retain logging\{\{nl\}\}{\emph{(Overridden by MaxAge)}} \tn % Row Count 4 (+ 4) % Row 9 \SetRowColor{white} CleanupProbability\{\{nl\}\}Denominator & 1000 & Probability of triggering cleanup\{\{nl\}\}{\emph{(Probability = 1/Denominator)}} \tn % Row Count 9 (+ 5) \hhline{>{\arrayrulecolor{DarkBackground}}---} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{2.584 cm} x{0.912 cm} x{4.104 cm} } \SetRowColor{DarkBackground} \mymulticolumn{3}{x{8.4cm}}{\bf\textcolor{white}{MCLog.LogToFunction}} \tn % Row 0 \SetRowColor{LightBackground} SeverityFilter\{\{nobreak\}\} & CRIT, ERR & Filter describing severities to log \tn % Row Count 3 (+ 3) % Row 1 \SetRowColor{white} Format & \{message\} & Format to use for output\{\{nl\}\}{\emph{\{Supports format tokens\}}} \tn % Row Count 6 (+ 3) \hhline{>{\arrayrulecolor{DarkBackground}}---} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{2.204 cm} x{1.824 cm} x{3.572 cm} } \SetRowColor{DarkBackground} \mymulticolumn{3}{x{8.4cm}}{\bf\textcolor{white}{MCLog.LogToString}} \tn % Row 0 \SetRowColor{LightBackground} SeverityFilter\{\{nobreak\}\} & CRIT, ERR\{\{nobreak\}\} & Filter describing severities to log \tn % Row Count 3 (+ 3) % Row 1 \SetRowColor{white} Format & \{message\}. & Format to use for output\{\{nl\}\}{\emph{\{Supports format tokens\}}} \tn % Row Count 7 (+ 4) \hhline{>{\arrayrulecolor{DarkBackground}}---} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{2.204 cm} x{1.824 cm} x{3.572 cm} } \SetRowColor{DarkBackground} \mymulticolumn{3}{x{8.4cm}}{\bf\textcolor{white}{MCLog.UserMessages}} \tn % Row 0 \SetRowColor{LightBackground} SeverityFilter\{\{nobreak\}\} & CRIT, ERR\{\{nobreak\}\} & Filter describing severities to log \tn % Row Count 3 (+ 3) % Row 1 \SetRowColor{white} Format & \{message\} & Format to use for output\{\{nl\}\}{\emph{\{Supports format tokens\}}} \tn % Row Count 7 (+ 4) % Row 2 \SetRowColor{LightBackground} MaxQueueSize\{\{nobreak\}\} & 100 & Max number of user messages to queue for retrieval \tn % Row Count 10 (+ 3) \hhline{>{\arrayrulecolor{DarkBackground}}---} \end{tabularx} \par\addvspace{1.3em} % That's all folks \end{multicols*} \end{document}