Hi,
Log function doesn’t work before the deadline submitter is started. I think it’s due to global. How can I overcome this problem?
(
global SMTDSettings
global SMTDFunctions
global SMTD_PerformSanityCheck
global SMTD_MainRollout
global SMTD_UserOptions
global SMTD_LogStream = #()
local SMTD_LogShowTimestamp = true
local SMTD_todaysLogFile = "C:\Users\AdminTest\Desktop\test.txt"
try(destroyDialog SimpleDeadlineSubmitter_Rollout)catch()
rollout SimpleDeadlineSubmitter_Rollout "" --rolledup:true
(
group "Logs"
(
dotNetControl dnc_report "ListView" width:365 height:90 align:#center
button logla "Logla!"
)
fn initReportWindow lv =
(
local layout_def = #(#("",60), #("",400))
lv.Clear()
lv.backColor = (dotNetClass "System.Drawing.Color").fromARGB SMTD_ColorPalette.maxBgColor.r SMTD_ColorPalette.maxBgColor.g SMTD_ColorPalette.maxBgColor.b
lv.View = (dotNetClass "System.Windows.Forms.View").Details
lv.gridLines = false
lv.fullRowSelect = true
lv.checkboxes = false
lv.hideSelection = false
lv.HeaderStyle = lv.HeaderStyle.None
for i in layout_def do lv.Columns.add i[1] i[2]
)
fn getTimeString =
(
timeArray = getLocalTime()
local hour = if timeArray[5] < 10 then (hour = "0" + (timeArray[5] as string)) else (hour = (timeArray[5] as string))
local minute = if timeArray[6] < 10 then (minute = "0" + (timeArray[6] as string)) else (minute = (timeArray[6] as string))
local second = if timeArray[7] < 10 then (second = "0" + (timeArray[7] as string)) else (second = (timeArray[7] as string))
timeString = hour + ":" + minute + ":" + second
)
fn Ui_report txt LogFileOnly:false AddTimeStamp:true =
(
if not LogFileOnly do
(
try
(
local strStream = txt as StringStream
local theRange = #()
local blackColor = (dotNetClass "System.Drawing.Color").fromARGB SMTD_ColorPalette.textColor.r SMTD_ColorPalette.textColor.g SMTD_ColorPalette.textColor.b
if SMTD_ColorPalette.maxBgColor.v >= 160 then
(
--DARK COLORS
local redColor = (dotNetClass "System.Drawing.Color").fromARGB 192 0 0
local orangeColor = (dotNetClass "System.Drawing.Color").fromARGB 192 100 0
local greenColor = (dotNetClass "System.Drawing.Color").fromARGB 0 92 0
local blueColor = (dotNetClass "System.Drawing.Color").fromARGB 0 0 128
)
else
(
--LIGHT COLORS
local redColor = (dotNetClass "System.Drawing.Color").fromARGB 255 128 128
local orangeColor = (dotNetClass "System.Drawing.Color").fromARGB 255 180 50
local greenColor = (dotNetClass "System.Drawing.Color").fromARGB 128 255 128
local blueColor = (dotNetClass "System.Drawing.Color").fromARGB 192 220 255
)
local lineCount = 0
local foreColor = blackColor
while not eof strStream do
(
local aLine = readLine strStream
if aLine == "" do continue
lineCount +=1
local logLevel = #info
if lineCount == 1 do --set the color and log level only if this is the first line of a multi-line log block
(
case of
(
default: (
foreColor = blackColor
)
(matchPattern aLine pattern:"?--*"): (
foreColor = redColor
logLevel = #error
)
(matchPattern aLine pattern:"--*"): (
foreColor = redColor
logLevel = #error
)
(matchPattern aLine pattern:"?!!*"): (
foreColor = orangeColor
logLevel = #warning
)
(matchPattern aLine pattern:"!!*"): (
foreColor = orangeColor
logLevel = #warning
)
(matchPattern aLine pattern:"?+*"): (
foreColor = greenColor
logLevel = #success
)
(matchPattern aLine pattern:"+*"): (
foreColor = greenColor
logLevel = #success
)
(matchPattern aLine pattern:">*"): (
foreColor = blueColor
logLevel = #progress
)
(matchPattern aLine pattern:"==*"): (
foreColor = blueColor
logLevel = #progress
)
)
)
local theTimeStamp = (if AddTimeStamp then getTimeString() else "")
append ::SMTD_LogStream #(theTimeStamp, forecolor, logLevel, aLine)
if findItem ::SMTD_LogFilters logLevel == 0 do
(
local li = dotNetObject "System.Windows.Forms.ListViewItem" (if SMTD_LogShowTimestamp then theTimeStamp else "")
li.forecolor = foreColor
local subLi = li.SubItems.add aLine
append theRange li
)
)
dnc_report.Items.AddRange theRange
if dnc_report.Items.Count > 0 do dnc_report.Items.Item[dnc_report.Items.Count-1].EnsureVisible()
local autoRes = dotNetClass "System.Windows.Forms.ColumnHeaderAutoResizeStyle"
dnc_report.AutoResizeColumns autoRes.ColumnContent
if not SMTD_LogShowTimestamp do dnc_report.Columns.Item[0].Width = 1
try(windows.processPostedMessages())catch()
)catch()
)
if AddTimeStamp then
try( format "[%] : %\n" (getTimeString()) txt to:SMTD_todaysLogFile)catch()
else
try( format "%\n" txt to:SMTD_todaysLogFile)catch()
)
on SimpleDeadlineSubmitter_Rollout open do
(
initReportWindow dnc_report
SimpleDeadlineSubmitter_Rollout.title = "Render724 Submitter | " + SMTDSettings.username +" | " + getTimeString()
Ui_report ("+Logged in ["+ getTimeString() +"]")
)
on logla pressed do
(
Ui_report ("+Solution Man from LOGLA ["+ getTimeString() +"]")
)
)--end rollout
createDialog SimpleDeadlineSubmitter_Rollout width:400 style:#(#style_titlebar, #style_border, #style_sysmenu, #style_minimizebox, #style_resizing)
--SMTDFunctions.getMaxVersion()
--SimpleDeadlineSubmitter_Rollout.Ui_report ("+sen kralsin ümit abi ["+ getTimeString() +"]")
)--end script