{"action":"created","issue":{"url":"https://api.github.com/repos/idaholab/moose/issues/6354","repository_url":"https://api.github.com/repos/idaholab/moose","labels_url":"https://api.github.com/repos/idaholab/moose/issues/6354/labels{/name}","comments_url":"https://api.github.com/repos/idaholab/moose/issues/6354/comments","events_url":"https://api.github.com/repos/idaholab/moose/issues/6354/events","html_url":"https://github.com/idaholab/moose/pull/6354","id":134714299,"number":6354,"title":"Perf log refactoring","user":{"login":"permcody","id":3036960,"avatar_url":"https://avatars.githubusercontent.com/u/3036960?v=3","gravatar_id":"","url":"https://api.github.com/users/permcody","html_url":"https://github.com/permcody","followers_url":"https://api.github.com/users/permcody/followers","following_url":"https://api.github.com/users/permcody/following{/other_user}","gists_url":"https://api.github.com/users/permcody/gists{/gist_id}","starred_url":"https://api.github.com/users/permcody/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/permcody/subscriptions","organizations_url":"https://api.github.com/users/permcody/orgs","repos_url":"https://api.github.com/users/permcody/repos","events_url":"https://api.github.com/users/permcody/events{/privacy}","received_events_url":"https://api.github.com/users/permcody/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2016-02-18T22:22:52Z","updated_at":"2016-02-19T01:26:19Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/idaholab/moose/pulls/6354","html_url":"https://github.com/idaholab/moose/pull/6354","diff_url":"https://github.com/idaholab/moose/pull/6354.diff","patch_url":"https://github.com/idaholab/moose/pull/6354.patch"},"body":"This commit adds the ability to print out the performance logs\r\nin between steps instead of just at the end of the simulation.\r\nI'm adding this so we can get performance logging on longer\r\nrunning simulations that may or may not finish on the cluster\r\nbefore wall time runs out or a failure occurs.\r\n\r\ncloses #6300"},"comment":{"url":"https://api.github.com/repos/idaholab/moose/issues/comments/186004480","html_url":"https://github.com/idaholab/moose/pull/6354#issuecomment-186004480","issue_url":"https://api.github.com/repos/idaholab/moose/issues/6354","id":186004480,"user":{"login":"aeslaughter","id":341333,"avatar_url":"https://avatars.githubusercontent.com/u/341333?v=3","gravatar_id":"","url":"https://api.github.com/users/aeslaughter","html_url":"https://github.com/aeslaughter","followers_url":"https://api.github.com/users/aeslaughter/followers","following_url":"https://api.github.com/users/aeslaughter/following{/other_user}","gists_url":"https://api.github.com/users/aeslaughter/gists{/gist_id}","starred_url":"https://api.github.com/users/aeslaughter/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aeslaughter/subscriptions","organizations_url":"https://api.github.com/users/aeslaughter/orgs","repos_url":"https://api.github.com/users/aeslaughter/repos","events_url":"https://api.github.com/users/aeslaughter/events{/privacy}","received_events_url":"https://api.github.com/users/aeslaughter/received_events","type":"User","site_admin":false},"created_at":"2016-02-19T01:26:19Z","updated_at":"2016-02-19T01:26:19Z","body":"I think this is probably fine for such a simple and special case, but it doesn't follow the convention for other items, but it is not like other items.\r\n\r\nI am thinking that the PerfLog should a new output class, that defaults to `execute_on = final`, if you want it more often you create a a block, change it to `execute_on=final` and set the interval. This is basically what I did for the Control dump stuff. Doing this opens up a can of worms on design, which I might as well open.\r\n\r\nFirst, if Perflog was a separate output object (regardless of implementation) this is what the Outputs block should look like, which is cleaner than a billion options in Console, in my opinion.\r\n\r\n```\r\n# Default perflog output\r\n[Outputs]\r\n  perf_log = true\r\n[]\r\n\r\n# Fancy stuff\r\n[Outputs]\r\n  [./log]\r\n    type = PerfLog\r\n    interval = 10\r\n    execute_on = 10\r\n  [../]\r\n[]\r\n```\r\n\r\nTo do this properly in MOOSE I think we need to create a generic \"console\" object, which is basically what our stream thing is now, but itself is multiapp aware so it can add the prefix.\r\n\r\nThen `Console` becomes `ConsoleBase`, which has access to the stream thingy. From this base all the various console output stuff can inherit: `PostprocessorConsole`, `TimeConsle`, `IterationsConsole`, etc. This would allow for the fine grain control that was desired by certain people, but break it apart into more logical pieces. This would also eliminate a whole bunch of crazy logic that exists in `AdvancedOutput`.\r\n\r\nAnyway, just me dreaming of a simpler output design. For now, probably just merge this as is. \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"}}