Last active
March 10, 2016 21:59
-
-
Save cparker15/1cda5f5f898cee42e642 to your computer and use it in GitHub Desktop.
Console Logging in Batch Files
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@ECHO OFF | |
:: =============== BEGIN VARIABLE DECLARATIONS =============== | |
:: Put variable declarations here... | |
:: =============== END VARIABLE DECLARATIONS =============== | |
ECHO/ | |
:: =============== BEGIN BATCH FILE BODY =============== | |
CALL :CONSOLE_LOG This should have a log level of INFO. | |
CALL :CONSOLE_INFO This should also have a log level of INFO. | |
CALL :CONSOLE_WARN This should have a log level of WARN. | |
CALL :CONSOLE_ERROR This should have a log level of ERROR. | |
CALL :CONSOLE_LOG ^^^^(This is text in parentheses.^^^^) | |
IF '..'=='..' ( | |
CALL :CONSOLE_LOG ^^^^^(So is this.^^^^^) | |
IF '..'=='..' ( | |
CALL :CONSOLE_LOG ^^^^^(So is this.^^^^^) | |
IF '..'=='..' ( | |
CALL :CONSOLE_LOG ^^^^^(So is this.^^^^^) | |
IF '..'=='..' ( | |
CALL :CONSOLE_LOG ^^^^^(So is this.^^^^^) | |
) | |
) | |
) | |
) | |
:: =============== END BATCH FILE BODY =============== | |
GOTO :EOF | |
:: =============== BEGIN FUNCTION DECLARATIONS =============== | |
:CONSOLE_LOG | |
:CONSOLE_INFO | |
SETLOCAL | |
CALL :ECHO_LOG INFO %* | |
ENDLOCAL | |
GOTO :EOF | |
:CONSOLE_WARN | |
SETLOCAL | |
CALL :ECHO_LOG WARN %* | |
ENDLOCAL | |
GOTO :EOF | |
:CONSOLE_ERROR | |
SETLOCAL | |
CALL :ECHO_LOG ERROR %* | |
ENDLOCAL | |
GOTO :EOF | |
:ECHO_LOG | |
SETLOCAL | |
SET ValidLogLevels=INFO WARN ERROR | |
FOR %%A IN (%ValidLogLevels%) DO ( | |
IF '.%%A.'=='.%1.' ( | |
SET LogLevel=%%A | |
) | |
) | |
IF '.%LogLevel%.'=='..' ( | |
ECHO/ | |
ECHO USAGE: | |
ECHO CALL :ECHO_LOG [Log Level] [Log Text] | |
ECHO/ | |
GOTO :EOF | |
) | |
FOR /f "usebackq tokens=1*" %%J IN (`ECHO %*`) DO @ SET LogText=%%K | |
FOR /F "usebackq tokens=1,2 delims==" %%J IN (`WMIC OS GET LocalDateTime /VALUE 2^>NUL`) DO ( | |
IF '.%%J.'=='.LocalDateTime.' ( | |
SET LocalDateTime=%%K | |
) | |
) | |
SET yyyy=%LocalDateTime:~0,4% | |
SET MM=%LocalDateTime:~4,2% | |
SET dd=%LocalDateTime:~6,2% | |
SET HH=%LocalDateTime:~8,2% | |
SET mm=%LocalDateTime:~10,2% | |
SET ss=%LocalDateTime:~12,2% | |
SET fff=%LocalDateTime:~15,3% | |
SET timestamp=%yyyy%-%MM%-%dd% %HH%:%mm%:%ss%.%fff% | |
ECHO [%timestamp% - %LogLevel%] %LogText% | |
ENDLOCAL | |
GOTO :EOF | |
:: =============== END FUNCTION DECLARATIONS =============== |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment