{"id":11248,"date":"2022-04-25T10:17:29","date_gmt":"2022-04-25T17:17:29","guid":{"rendered":"https:\/\/www.coretechnologies.com\/blog\/?p=11248"},"modified":"2022-04-25T10:17:29","modified_gmt":"2022-04-25T17:17:29","slug":"version-13-3-released","status":"publish","type":"post","link":"https:\/\/www.coretechnologies.com\/blog\/alwaysup\/version-13-3-released\/","title":{"rendered":"AlwaysUp 13.3 Introduces Log File Rollover and Expands the use of Variables"},"content":{"rendered":"<div align=\"center\"><img loading=\"lazy\" decoding=\"async\" class=\"no-lazy-load\" src=\"\/blog\/images\/available-now.webp\" title=\"AlwaysUp 13.3 is available now\" alt=\"AlwaysUp 13.3 is available now\" border=\"0\" width=\"300\" height=\"180\" \/><\/div>\n<p><a href=\"\/products\/AlwaysUp\">AlwaysUp<\/a> version 13.3 was released to all customers on April 16, 2022.<\/p>\n<p>This update delivers a couple of significant improvements to help you run your programs as Windows Services &mdash; unattended and 24\/7.<\/p>\n<h2 class=\"blog-caption\">AlwaysUp accepts special variables in the &#8220;Arguments&#8221; and &#8220;Start in&#8221; fields<\/h2>\n<p>Do you run many instances of a single executable with AlwaysUp?<\/p>\n<p>And does each application&#8217;s configuration follow a predictable format?<\/p>\n<p>If so, you may be able to use special variables when defining your applications.<\/p>\n<p>For example, let&#8217;s take the case of the <a href=\"\/products\/AlwaysUp\/Apps\/RunAlphaFiveApplicationServerAsAService.html\">Alpha Five web server<\/a>. It&#8217;s common for customers to <a href=\"https:\/\/documentation.alphasoftware.com\/documentation\/pages\/Guides\/Application%20Server\/Running%20Multiple%20Instances%20of%20the%20%20Alpha%20Anywhere%20Application%20Server.xml#section1_Running%20Multiple%20Instances%20of%20the%20Application%20Server%20on%20Windows\" target=\"_blank\" rel=\"noopener\">run multiple instances of Alpha<\/a> in AlwaysUp, each with its own configuration.<\/p>\n<p>In those situations, each entry in AlwaysUp will point to the same executable &mdash; A5ApplicationServer.exe. However, each instance will specify its own configuration file in the &#8220;Arguments&#8221; field.<\/p>\n<p>Here is what it looks like when creating an instance of Alpha Five in AlwaysUp:<\/p>\n<div align=\"center\"><a href=\"\/blog\/images\/alpha-server1-configuration.png\" class=\"zoomPopup\" title=\"Alpha Five server configuration\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"image-padding\" src=\"\/blog\/images\/alpha-server1-configuration.png\" title=\"Alpha Five server configuration (click to enlarge)\" alt=\"Alpha Five server configuration\" border=\"0\" width=\"411\" height=\"592\" \/><\/a><\/div>\n<p>Since the name of the configuration file (C:\\AlphaFive\\Server1-config.xml) is based on the entry&#8217;s name in AlwaysUp (Server1), we can use the $ALWAYSUP_NAME variable in the &#8220;Arguments&#8221; field instead:<\/p>\n<div align=\"center\"><a href=\"\/blog\/images\/alpha-server1-configuration-with-variable.png\" class=\"zoomPopup\" title=\"Alpha Five server configuration using a variable\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"image-padding\" src=\"\/blog\/images\/alpha-server1-configuration-with-variable.png\" title=\"Alpha Five server configuration using a variable (click to enlarge)\" alt=\"Alpha Five server configuration using a variable\" border=\"0\" width=\"411\" height=\"592\" \/><\/a><\/div>\n<p>Using a variable like that reduces errors and saves a few keystrokes when duplicating the entry. And that can come in very handy when you have to create and manage many instances!<\/p>\n<p>By the way, you can check out the full list of variables on page 78 of the <a href=\"https:\/\/www.coretechnologies.com\/products\/AlwaysUp\/AlwaysUpUserManual.pdf\" target=\"_blank\" rel=\"noopener\">AlwaysUp User&#8217;s Manual<\/a>.<\/p>\n<h2 class=\"blog-caption\">AlwaysUp can roll over log files when capturing your console application&#8217;s output<\/h2>\n<p>If you&#8217;re running a console application as a Windows Service with AlwaysUp, you may already know about the option to capture output to a file. That setting is available on the <a href=\"\/products\/AlwaysUp\/Screenshots\/alwaysup-add-application-extras-tab.png\" class=\"zoomPopup\" target=\"_blank\" rel=\"noopener\">Extras tab<\/a>.<\/p>\n<p>In previous releases, the only option to limit the file&#8217;s size was by trimming. When the file grew larger than the given threshold, AlwaysUp would discard the oldest 25% of the file to make room for new entries. As such, there was no way retain all console output while limiting the file&#8217;s size.<\/p>\n<p>To address that shortcoming, AlwaysUp now supports rollover when the file gets too large. When the rollover option is enabled, AlwaysUp will copy a too-large log file to a name suffixed with the current date and restart capture with an empty file.<\/p>\n<p>For example, let&#8217;s say you&#8217;re logging to a file named &#8220;console-output.log&#8221; and limiting the size to 10 MB. And on April 20, 2022, the file exceeds the threshold. In response, AlwaysUp will:<\/p>\n<ol>\n<li>\n<p>Copy the file to &#8220;console-output_2022-04-20.log&#8221;, to preserve all entries recorded so far;<\/p>\n<\/li>\n<li>\n<p>Zero out &#8220;console-output.log&#8221; and start writing new entries there.<\/p>\n<\/li>\n<\/ol>\n<p>Note that if there are many rollovers in a single day, AlwaysUp will add numeric suffix to produce a unique file name. That may result in files named &#8220;console-output_2022-04-20_01.log&#8221; or &#8220;console-output_2022-04-20_02.log&#8221; in the situation above.<\/p>\n<p>You can activate the rollover option on the Extras tab. Check the <b>Capture output&#8230;<\/b> and <b>Automatically&#8230;<\/b> boxes and choose <b>rollover<\/b> from the selector:<\/p>\n<div align=\"center\"><a href=\"\/blog\/images\/alwaysup-log-file-rollover-setting.png\" class=\"zoomPopup\" title=\"AlwaysUp: Log file rollover\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"image-padding\" src=\"\/blog\/images\/alwaysup-log-file-rollover-setting.png\" title=\"AlwaysUp: Log file rollover (click to enlarge)\" alt=\"AlwaysUp: Log file rollover\" border=\"0\" width=\"411\" height=\"592\" \/><\/a><\/div>\n<h2 class=\"blog-caption\">Other fixes &amp; improvements<\/b><\/h2>\n<ul>\n<li>\n<p>When creating a Node.js Windows Service, the <a href=\"\/blog\/alwaysup\/version-13-released\/#application-advisor\">Application Advisor<\/a> will set the &#8220;Start in directory&#8221; to the folder containing the script. That&#8217;s the right setting for scripts that rely on other Node files in the same folder.<\/p>\n<\/li>\n<li>\n<p>AlwaysUp now runs the latest version of <a href=\"\/products\/AlwaysUp\/Apps\/InstallGoogleDriveDesktopWindowsService.html\">Google Drive for desktop<\/a> after an automatic update.<\/p>\n<\/li>\n<li>\n<p>Even though <a href=\"\/blog\/windows\/windows-server-2022\/\">Windows Server 2022 didn&#8217;t bring significant changes for Windows Services<\/a>, we still had to make a few tweaks to the code. For example, diagnostic logs now identify server 2022 properly.<\/p>\n<\/li>\n<\/ul>\n<p style=\"padding-top:10px\">As usual, please review the <a href=\"\/products\/AlwaysUp\/VersionHistory.html\">release notes<\/a> for the full list of features, fixes and improvements included in this release.<\/p>\n<h2 class=\"blog-caption\">Upgrading to AlwaysUp 13.3<\/h2>\n<p>If you purchased <b>AlwaysUp version 12 (after March 2020), you can upgrade to any version 13 for free<\/b>. Simply download and <a href=\"\/products\/AlwaysUp\/AlwaysUp_FAQ.html#upgrading\">install &#8220;over the top&#8221;<\/a> to preserve your existing applications and all settings. Your registration code will continue to work as well.<\/p>\n<p>If you bought <b>AlwaysUp version 11 or earlier (before March 2020), you will need to upgrade to use version 13<\/b>. Consequently, please <a href=\"\/products\/AlwaysUp\/purchase-upgrade.html\">purchase upgrades here &mdash; at a 50% discount<\/a>.<\/p>\n<p>Please see the <a href=\"\/products\/AlwaysUp\/AlwaysUp_FAQ.html#upgrade\">upgrade policy<\/a> for full details.<\/p>\n<p style=\"padding-top:10px\">Enjoy!<\/a><\/p>\n<!-- relpost-thumb-wrapper --><div class=\"relpost-thumb-wrapper\"><!-- filter-class --><div class=\"relpost-thumb-container\"><style>.relpost-block-single-image, .relpost-post-image { margin-bottom: 10px; }<\/style><h3>You may also like...<\/h3><div style=\"clear: both\"><\/div><div style=\"clear: both\"><\/div><!-- relpost-block-container --><div class=\"relpost-block-container relpost-block-column-layout\" style=\"--relposth-columns: 3;--relposth-columns_t: 2; --relposth-columns_m: 2\"><a href=\"https:\/\/www.coretechnologies.com\/blog\/windows-services\/prevent-user-interface\/\"class=\"relpost-block-single\" ><div class=\"relpost-custom-block-single\"><img decoding=\"async\" loading=\"lazy\" class=\"relpost-block-single-image\" alt=\"I&#039;m Worried. Will Microsoft Ever Prevent a Windows Service from Creating a User Interface?\"  src=\"https:\/\/www.coretechnologies.com\/blog\/wp-content\/uploads\/windows-service-gui-150x150-1.webp\" style=\"aspect-ratio:1\/1\" style=\"aspect-ratio:1\/1\"><\/img><div class=\"relpost-block-single-text\"  style=\"height: 75px;font-family: Arial;  font-size: 12px;  color: #333333;\"><h2 class=\"relpost_card_title\">I&#039;m Worried. Will Microsoft Ever Prevent a Windows Service from Creating a User Interface?<\/h2><\/div><\/div><\/a><a href=\"https:\/\/www.coretechnologies.com\/blog\/alwaysup\/vb6-memory-leaks\/\"class=\"relpost-block-single\" ><div class=\"relpost-custom-block-single\"><img decoding=\"async\" loading=\"lazy\" class=\"relpost-block-single-image\" alt=\"Q&amp;A: How do I Make AlwaysUp Babysit my Leaky VB6 Program?\"  src=\"https:\/\/www.coretechnologies.com\/blog\/wp-content\/uploads\/memory-leaks-growing-150x150.png\" style=\"aspect-ratio:1\/1\" style=\"aspect-ratio:1\/1\"><\/img><div class=\"relpost-block-single-text\"  style=\"height: 75px;font-family: Arial;  font-size: 12px;  color: #333333;\"><h2 class=\"relpost_card_title\">Q&amp;A: How do I Make AlwaysUp Babysit my &quot;Leaky&quot; VB6 Program?<\/h2><\/div><\/div><\/a><a href=\"https:\/\/www.coretechnologies.com\/blog\/alwaysup\/mt4-build-600-with-alwaysup\/\"class=\"relpost-block-single\" ><div class=\"relpost-custom-block-single\"><img decoding=\"async\" loading=\"lazy\" class=\"relpost-block-single-image\" alt=\"Trouble with MT4 Build 600 and AlwaysUp?\"  src=\"https:\/\/www.coretechnologies.com\/blog\/wp-content\/uploads\/metatrader4-logo-150x150.png\" style=\"aspect-ratio:1\/1\" style=\"aspect-ratio:1\/1\"><\/img><div class=\"relpost-block-single-text\"  style=\"height: 75px;font-family: Arial;  font-size: 12px;  color: #333333;\"><h2 class=\"relpost_card_title\">Trouble with MT4 Build 600 and AlwaysUp?<\/h2><\/div><\/div><\/a><\/div><!-- close relpost-block-container --><div style=\"clear: both\"><\/div><\/div><!-- close filter class --><\/div><!-- close relpost-thumb-wrapper -->","protected":false},"excerpt":{"rendered":"<p>AlwaysUp version 13.3 was released to all customers on April 16, 2022. This update delivers a couple of significant improvements to help you run your programs as Windows Services &mdash; unattended and 24\/7. AlwaysUp accepts special variables in the &#8220;Arguments&#8221; &hellip; <a href=\"https:\/\/www.coretechnologies.com\/blog\/alwaysup\/version-13-3-released\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":11260,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[25,26,57,85,109,289,274],"class_list":["post-11248","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-alwaysup","tag-alpha-anywhere","tag-alwaysup-tag","tag-console-application","tag-google-drive","tag-new-release","tag-node-js","tag-windows-server-2022"],"_links":{"self":[{"href":"https:\/\/www.coretechnologies.com\/blog\/wp-json\/wp\/v2\/posts\/11248","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.coretechnologies.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.coretechnologies.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.coretechnologies.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.coretechnologies.com\/blog\/wp-json\/wp\/v2\/comments?post=11248"}],"version-history":[{"count":12,"href":"https:\/\/www.coretechnologies.com\/blog\/wp-json\/wp\/v2\/posts\/11248\/revisions"}],"predecessor-version":[{"id":11269,"href":"https:\/\/www.coretechnologies.com\/blog\/wp-json\/wp\/v2\/posts\/11248\/revisions\/11269"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.coretechnologies.com\/blog\/wp-json\/wp\/v2\/media\/11260"}],"wp:attachment":[{"href":"https:\/\/www.coretechnologies.com\/blog\/wp-json\/wp\/v2\/media?parent=11248"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.coretechnologies.com\/blog\/wp-json\/wp\/v2\/categories?post=11248"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.coretechnologies.com\/blog\/wp-json\/wp\/v2\/tags?post=11248"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}