Jump to content

Search the Community

Showing results for tags 'logging'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • BOHEMIA INTERACTIVE
    • BOHEMIA INTERACTIVE - NEWS
    • BOHEMIA INTERACTIVE - JOBS
    • BOHEMIA INTERACTIVE - GENERAL
  • FEATURED GAMES
    • Vigor
    • DAYZ
    • ARMA 3
    • ARMA 2
    • YLANDS
  • MOBILE GAMES
    • ARMA MOBILE OPS
    • MINIDAYZ
    • ARMA TACTICS
    • ARMA 2 FIRING RANGE
  • BI MILITARY GAMES FORUMS
  • BOHEMIA INCUBATOR
    • PROJECT LUCIE
  • OTHER BOHEMIA GAMES
    • ARGO
    • TAKE ON MARS
    • TAKE ON HELICOPTERS
    • CARRIER COMMAND: GAEA MISSION
    • ARMA: ARMED ASSAULT / COMBAT OPERATIONS
    • ARMA: COLD WAR ASSAULT / OPERATION FLASHPOINT
    • IRON FRONT: LIBERATION 1944
    • BACK CATALOGUE
  • OFFTOPIC
    • OFFTOPIC
  • Die Hard OFP Lovers' Club's Topics
  • ArmA Toolmakers's Releases
  • ArmA Toolmakers's General
  • Japan in Arma's Topics
  • Arma 3 Photography Club's Discussions
  • The Order Of the Wolfs- Unit's Topics
  • 4th Infantry Brigade's Recruitment
  • 11th Marine Expeditionary Unit OFFICIAL | 11th MEU(SOC)'s 11th MEU(SOC) Recruitment Status - OPEN
  • Legion latina semper fi's New Server Legion latina next wick
  • Legion latina semper fi's https://www.facebook.com/groups/legionlatinasemperfidelis/
  • Legion latina semper fi's Server VPN LEGION LATINA SEMPER FI
  • Team Nederland's Welkom bij ons club
  • Team Nederland's Facebook
  • [H.S.O.] Hellenic Special Operations's Infos
  • BI Forum Ravage Club's Forum Topics
  • Exilemod (Unofficial)'s General Discussion
  • Exilemod (Unofficial)'s Scripts
  • Exilemod (Unofficial)'s Addons
  • Exilemod (Unofficial)'s Problems & Bugs
  • Exilemod (Unofficial)'s Exilemod Server tweaks
  • Exilemod (Unofficial)'s Promotion
  • Exilemod (Unofficial)'s Maps - Mission Files
  • TKO's Weferlingen
  • TKO's Chernarus
  • TKO's Livonia
  • TKO's Rules
  • TKO's Changelog
  • TKO's Help
  • TKO's What we Need
  • MSOF A3 Wasteland's Server Game Play Features
  • MSOF A3 Wasteland's Problems & Bugs
  • MSOF A3 Wasteland's Maps in Rotation
  • SOS GAMING's Server
  • SOS GAMING's News on Server
  • SOS GAMING's Regeln / Rules
  • SOS GAMING's Ghost-Town-Team
  • SOS GAMING's Steuerung / Keys
  • SOS GAMING's Div. Infos
  • SOS GAMING's Small Talk
  • NAMC's Topics

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Website URL


Yahoo


Jabber (xmpp)


Skype


Biography


Twitter


Google+


Youtube


Vimeo


Xfire


Steam url id


Raptr


MySpace


Linkedin


Tumblr


Flickr


XBOX Live


PlayStation PSN


Origin


PlayFire


SoundCloud


Pinterest


Reddit


Twitch.Tv


Ustream.Tv


Duxter


Instagram


Location


Interests


Interests


Occupation

Found 2 results

  1. ─────── Structure ─────── Motivation Introduction Features Benchmarks Installation Usage Final words Changelog Requirements Download Screenshots ─────── Motivation ─────── Hello there, first I want to talk about why I made this - well there is a pretty simple reason. As a developer and as server owner you always need logs. You need logs to write debug messages, you need logs to make statistics for your squad, you need logs to be able to have a look on who did what when. Logs are awesome, and without them it would take much longer to find an error or to find out who shot who first, or how many players were on your server today. Let us have a look on the game log itself, the rpt log. It provides errors, if you have got some, and gives some debug information about startup and shutdown of the game. However since there are some errors in the game that write a nice little message every 1-2 seconds into the log-file, the rpt gets larger and larger ... and now find the one line you need. Imagine, you are a server owner, and you want to keep track on who connected when on your squad server for you and some friends. Why ? Well you like it to stalk other people, or wanted to play NSA simulator 2016. You could log who connected, with which player-ID and so on ... but where do these logs go? Well I always had to log into the rpt file. Often I search for one line which is between 1000 of other lines. That does not only take time, but it might also happen, that you do not find the line, even if you go through everything 10 times. That is where I had the idea, well ... why not create an extension where you decide where logs are placed, in which format, how they are named, if they should have got a time stamp, if this time stamp should be in 12 or 24 hour format etc. I wanted a simple extension where you setup a config, and then just call a function with content, and maybe optional a name which is used for separation. Simple but fast, with options, so that you can get logs from ArmA just the way you want it. I already made a extension called Arma3Log a while ago but I was new into extension writing, and you could have seen that ... it was slow and not very useful... but I wanted to do better and here we are. ─────── Introduction ─────── A3log is a lightweight logging extension for ArmA III, which allows it's users to write customized log-files with a very high performance. It is very easy to use, and does not require and advanced skills for the setup, or the usage. The log-files are adjustable in nearly every way, you could come up with in case of writing log-files. Even when dealing with a high amount of data, the server will not be slowed down and there is no data loss. As it is still in development, there will be improvements to the speed and the amount of features / settings. ─────── Features ─────── Timestamp inside the logfile Timestamp (Date) within the filename Extend the filename with the minute of creation Changeable timestamp format 12/24H clock Custom directory to place the logs (Full-/Relative path) Choose the name of the file Choose the file-extension Define a unlimited amount of custom log categories Separate each log category as one folder Define path and name of the configuration ini ─────── Benchmarks ─────── 1000 lines with 100 characters each: 0.052 seconds - diag_log 0.0159998 seconds - A3log (with all features enabled at v1.1) Extreme example: 100.000 lines with 100 charaters each: 55,895 seconds - diag_log 15,2 seconds - A3log (with all features enabled at v1.1) Note: The test conditions for the benchmarks were reset for every run. The value in seconds is the middle value of 10 test runs. The time indicates how long it took for ArmA to process the input and output of the extension, so how long the server was under heavy load to send the content to the extension. ─────── Installation ─────── Download the latest version (See download section for that) Extract the @A3Log folder and place it in your server directory Go into the @A3Log folder and make sure the the A3Log.dll is not blocked Edit the A3Log.ini file to fit your personal need -> Save the file Edit your startup file and add @A3Log to your -serverMod / -mod parameter Optional: To specify from where the config should be loaded you can define startup a paramter for the arma3server executable with "-A3Log=Configurations/Mylogs.ini" (Only paths in your arma3server directory are allowed so in this case you would have a folder called Configurations inside of your serversetup and in that you have the config file called Mylogs.ini) - This feature is WIP Remove the A3Log_examples.pbo inside @A3Log/addons, once it worked for you and you got example log files Done ─────── Usage ─────── The A3Log.pbo provides you with the A3Log function, which you can call from anywhere. In addiotion to that there is a serverside PublicVariableEventHandler (sendlogfile) to catch incoming log entries, which may be send via publicVariableServer So an example for serverside use would be: ["I am Superman!"] call A3Log; This one has no category defined, so it goes into the catch all log (See A3Log.ini for this) --- ["I am Batman!","ExampleLog"] call A3Log; This one goes into the ExampleLog.log, or what ever you called it. An example for sending a log from a client / headless client would be: sendlogfile = ["I am Batman!","ExampleLog"]; publicVariableServer "sendlogfile"; You might need to whitelist this in the publicvariable.txt from Battleye with !="sendlogfile" --- Or if you prefer remoteExec ["I am Batman!","ExampleLog"] remoteExecCall ["A3Log", 2]; //2 = send to server only and call is much faster Note: You would need to whitelist A3Log as a function that can only be executed on the server. --- So to describe the usage in general: The function A3Log (Serverside) handles the input and sends it to the A3Log extension. <Paramter> call A3Log; --- <Paramter> is an array [], which you can send up to 2 paramters in. [<text>,<category (This second one is optional)>] call A3Log; Attention! - If you want to rewrite the function that sends the log message to the extension, you need to include the information separator byte, which can be used in ArmA like this: <bla bla text> + toString[31] + <your-cool-category> //This all is from variable type string --- You can use this extension as client mod too, just make sure to disable Battleye, as the dll would get blocked by BE otherwise. ─────── Final words ─────── I will provide some additional usage examples and code snippets inside the A3Log_examples.pbo in the future. This is not a drag and drop everything will be logged for every mission you use addon. You still need to invest some time into the configuration and your setup, what you want to log. Since there are many versions of missions, which all differ in their code like an eventhandler for being killed or something, I can not provide code that fits with just a simple copy and paste. How ever I offer everybody to send me a request on these forums or via arkensor@gmail.com so that I can help him with either the setup or write some lines of code from him. I will expand this extension with my own ideas, and requests you guys might have, and it would be great to have some feedback on this. At this point I would like to thank Killzone_Kid, for making a great documentation and tutorials about extensions, which made me start with extension making for arma3. And thanks to my teammate Maurice for helping me with some magic c++ code! If you want to support me and my work, you can send me a donation via paypal. Thank you very much! ─────── Changelog ─────── v1.7: - [Added] x64 support for Windows and Linux . v1.6: - [Added] Optional console output for Windows. - Formating and preparations for a colored debug output Older versions: ─────── Requirements ─────── Windows: C++ Redistributable 2013 32-Bit - Download -> vcredist_x86 (This should be pre installed on all hosting providers) ─────── Download ─────── Download the file at armaholic.com: ─────── Screenshots ─────── This is my folder where I place my logs at serverdir/@A3Log/Logs: Note: Inside the folders are files which were written as the config had folder seperation enabled. License: If you have got any questions feel free to ask. Help me with your feedback to improve this project! Now have fun with it, and enjoy your clean log files :) Regards Arkensor
  2. Hi all, I have been having a problem with a set of functions of mine, I can't reproduce it locally, but it occurs on my Unit's dedicated server occasionally (not all the time), I can't quite figure out what is causing it. Error in the .rpt: I had this problem previously but I fixed it in the below Function (fn_RainTexture.sqf) by adding this Line: if (isNull _unit) exitWith {}; fn_RainTexture.sqf: So I figured that the error must have something to do with an un-handled null "_unit", maybe? fn_GearSwitch.sqf (the script where the problem occurs): What happens is that this script is executed on on a bunch of Units (AI and Players), the server "Hands out" the script to to each unit to execute. Ideally I'd like to be able to, when it causes the .rpt error, somehow spit-out which unit the error occurs on. Essentially making it much easier to track down the root cause. Anybody know a way to log only when the function trips with an error? PS: I wouldn't object if someone managed to figure out what the problem with the function is as well :P Thanks in Advance, Squirrel.
×