{ "id": "104348", "key": "TIMOB-11769", "fields": { "issuetype": { "id": "5", "description": "The sub-task of the issue", "name": "Sub-task", "subtask": true }, "parent": { "id": "89173", "key": "TIMOB-8424", "fields": { "summary": "Ti API: Define cross platform logging API", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "High", "id": "2" }, "issuetype": { "id": "7", "description": "gh.issue.story.desc", "name": "Story", "subtask": false } } }, "project": { "id": "10153", "key": "TIMOB", "name": "Titanium SDK/CLI", "projectCategory": { "id": "10100", "description": "Titanium and related SDKs used in application development", "name": "Client" } }, "fixVersions": [ { "id": "14162", "description": "Release 3.1.0", "name": "Release 3.1.0", "archived": true, "released": true, "releaseDate": "2013-04-16" } ], "resolution": { "id": "3", "description": "The problem is a duplicate of an existing issue.", "name": "Duplicate" }, "resolutiondate": "2013-03-05T01:12:12.000+0000", "created": "2012-11-02T22:02:32.000+0000", "priority": { "name": "Medium", "id": "3" }, "labels": [ "cli", "debugger", "js", "qe-ios100112" ], "versions": [ { "id": "13505", "description": "Release 3.0.0", "name": "Release 3.0.0", "archived": true, "released": true, "releaseDate": "2012-12-14" } ], "issuelinks": [ { "id": "26354", "type": { "id": "10002", "name": "Duplicate", "inward": "is duplicated by", "outward": "duplicates" }, "outwardIssue": { "id": "109983", "key": "TIMOB-12809", "fields": { "summary": "CLI: iOS log output gets munged", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "High", "id": "2" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "22509", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "104209", "key": "TISTUD-2688", "fields": { "summary": "iOS: Ti.API: some console logging calls with array args do not print array to console", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "High", "id": "2" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "24156", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "107356", "key": "TISTUD-3120", "fields": { "summary": "iOS Simulator: console log level filter does not work", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "High", "id": "2" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "22510", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "104289", "key": "TISTUD-2698", "fields": { "summary": "Console: no colors on new lines in debug output", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "High", "id": "2" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "22508", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "80412", "key": "TISTUD-641", "fields": { "summary": "[TRACE], [INFO] and [DEBUG] colors need tweaking on white themes", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "Medium", "id": "3" }, "issuetype": { "id": "4", "description": "An improvement or enhancement to an existing feature or task.", "name": "Improvement", "subtask": false } } } } ], "assignee": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "updated": "2013-03-07T19:32:38.000+0000", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "components": [ { "id": "13103", "name": "CLI", "description": "Node-based command line interface" } ], "description": "Console: colors, lines, and messages ill-formatted with CLI enabled (see screenshots).\r\n\r\nSteps to Reproduce:\r\n\r\n1. Run code:\r\n\r\n{code}\r\n/* console */\r\n\r\nif(Ti.Platform.osname != 'android') // TIMOB-11294 - Android: console: log functions fail in commonjs require\r\n{\r\n\tconsole.log('console LOG');\r\n\tconsole.log(['console LOG', 'ARG1', 'ARG2']);\r\n\t \r\n\tconsole.debug('console DEBUG');\r\n\tconsole.debug(['console DEBUG', 'ARG1', 'ARG2']);\r\n\t \r\n\tconsole.info('console INFO');\r\n\tconsole.info(['console INFO', 'ARG1', 'ARG2']);\r\n\t \r\n\tconsole.warn('console WARN');\r\n\tconsole.warn(['console WARN', 'ARG1', 'ARG2']);\r\n\t\r\n\tconsole.error('console ERROR');\r\n\tconsole.error(['console ERROR', 'ARG1', 'ARG2']);\r\n}\r\nelse\r\n{\r\n\tTi.API.info('TIMOB-11294 - Android: console: log functions fail in commonjs require');\r\n}\r\n\r\n/* Ti.API */\r\n \r\nTi.API.trace('Ti.API TRACE');\r\nTi.API.trace(['Ti.API TRACE', 'ARG1', 'ARG2']);\r\n \r\nTi.API.debug('Ti.API DEBUG');\r\nTi.API.debug(['Ti.API DEBUG', 'ARG1', 'ARG2']);\r\n \r\nTi.API.info('Ti.API INFO');\r\nTi.API.info(['Ti.API INFO', 'ARG1', 'ARG2']);\r\n \r\nTi.API.warn('Ti.API WARN');\r\nTi.API.warn(['Ti.API WARN', 'ARG1', 'ARG2']);\r\n \r\nTi.API.error('Ti.API ERROR');\r\nTi.API.error(['Ti.API ERROR', 'ARG1', 'ARG2']);\r\n \r\n/* Ti.API.log */\r\n \r\nTi.API.log('TRACE', 'Ti.API.log TRACE');\r\nTi.API.log('TRACE', ['Ti.API.log TRACE', 'ARG1', 'ARG2']);\r\n \r\nTi.API.log('DEBUG', 'Ti.API.log DEBUG');\r\nTi.API.log('DEBUG', ['Ti.API.log DEBUG', 'ARG1', 'ARG2']);\r\n \r\nTi.API.log('INFO', 'Ti.API.log INFO');\r\nTi.API.log('INFO', ['Ti.API.log INFO', 'ARG1', 'ARG2']);\r\n \r\nTi.API.log('WARN', 'Ti.API.log WARN');\r\nTi.API.log('WARN', ['Ti.API.log WARN', 'ARG1', 'ARG2']);\r\n \r\nTi.API.log('ERROR', 'Ti.API.log ERROR');\r\nTi.API.log('ERROR', ['Ti.API.log ERROR', 'ARG1', 'ARG2']);\r\n \r\nTi.API.log('LOG', 'Ti.API.log LOG');\r\nTi.API.log('LOG', ['Ti.API.log LOG', 'ARG1', 'ARG2']);\r\n \r\n/* Ti.iOS.API */\r\n \r\nif(Ti.Platform.osname == 'iphone' || Ti.Platform.osname == 'ipad')\r\n{\r\n Ti.API.timestamp('Ti.API TIMESTAMP');\r\n Ti.API.timestamp(['Ti.API TIMESTAMP', 'ARG1', 'ARG2']);\r\n}\r\n{code}\r\n\r\nActual Result:\r\n\r\ncolors, line formatting misaligned, and some messages do not display at all.\r\n\r\nExpected Result:\r\n\r\ncolors, lines, and messages should appear and be properly formatted", "attachment": [ { "id": "33174", "filename": "cli disabled.png", "author": { "name": "dhyde", "key": "dhyde", "displayName": "Dustin Hyde", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-11-02T22:07:02.000+0000", "size": 43928, "mimeType": "image/png" }, { "id": "33175", "filename": "cli enabled.png", "author": { "name": "dhyde", "key": "dhyde", "displayName": "Dustin Hyde", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-11-02T22:07:02.000+0000", "size": 43031, "mimeType": "image/png" }, { "id": "33170", "filename": "colors0.png", "author": { "name": "dhyde", "key": "dhyde", "displayName": "Dustin Hyde", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-11-02T22:02:32.000+0000", "size": 52522, "mimeType": "image/png" }, { "id": "33171", "filename": "colors1.png", "author": { "name": "dhyde", "key": "dhyde", "displayName": "Dustin Hyde", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-11-02T22:02:32.000+0000", "size": 53467, "mimeType": "image/png" }, { "id": "33172", "filename": "colors2.png", "author": { "name": "dhyde", "key": "dhyde", "displayName": "Dustin Hyde", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-11-02T22:02:32.000+0000", "size": 51465, "mimeType": "image/png" } ], "flagged": false, "summary": "CLI: colors, lines, and messages ill-formatted with CLI enabled", "creator": { "name": "dhyde", "key": "dhyde", "displayName": "Dustin Hyde", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "dhyde", "key": "dhyde", "displayName": "Dustin Hyde", "active": true, "timeZone": "America/Los_Angeles" }, "environment": "Titanium Studio: 3.0.0\r\nTitanium SDK: 2.1.3, 3.0.0\r\nOS: Mountain Lion 10.8.2\r\nTitanium CLI: enabled", "comment": { "comments": [ { "id": "226051", "author": { "name": "dhyde", "key": "dhyde", "displayName": "Dustin Hyde", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Attaching colors(0-2).png (2.1.3.GA), there is strange coloring. Some messages aren't displaying and newline formatting is misaligned.\r\nTitanium Studio: 3.0.0.201210291448\r\nTitanium SDK: 3.0.0.v20121030170824, 2.1.3.GA\r\nOS: Mountain Lion 10.8.2\r\nXcode: 4.5.2\r\nTitanium CLI: 3.0.13\r\nTitanium CLI: enabled\r\nThis is caused by the CLI. Related to TISTUD-2698.", "updateAuthor": { "name": "dhyde", "key": "dhyde", "displayName": "Dustin Hyde", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-11-02T22:06:50.000+0000", "updated": "2012-11-02T22:13:49.000+0000" }, { "id": "227307", "author": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "body": "Here's my observations:\n\nThe coloring issues are handled by TISTUD-2698.\n\nUsing the new CLI with a very recent SDK build, I am not seeing proper output inside Studio _and_ on the command line, indicating it's a platform issue.\n\nI have an app with a bunch of logging calls:\n{code}\nTi.API.trace('line0\\nline1\\nline2\\nline3');\nTi.API.trace(['Ti.API TRACE', 'ARG1', 'ARG2']);\n \nTi.API.debug('line0\\nline1\\nline2\\nline3');\nTi.API.debug(['Ti.API DEBUG', 'ARG1', 'ARG2']);\n \nTi.API.info('line0\\nline1\\nline2\\nline3');\nTi.API.info(['Ti.API INFO', 'ARG1', 'ARG2']);\n \nTi.API.warn('line0\\nline1\\nline2\\nline3');\nTi.API.warn(['Ti.API WARN', 'ARG1', 'ARG2']);\n \nTi.API.error('line0\\nline1\\nline2\\nline3');\nTi.API.error(['Ti.API ERROR', 'ARG1', 'ARG2']);\n{code}\n\nRunning it against CLI 3.0.16 and SDK 3.0.0.v20121112163159 on the command line as:\n{code}\n\"/usr/local/bin/titanium\" \"--no-banner\" \"--no-colors\" \"--no-prompt\" \"build\" \"--platform\" \"iphone\" \"--sdk\" \"3.0.0.v20121112163159\" \"--log-level\" \"trace\" \"--target\" \"simulator\" \"--ios-version\" \"6.0\" \"--device-family\" \"iphone\"\n{code}\n\nHere's what I see as the end of the output:\n{code}\n[DEBUG] Found iPhone Simulator log file: /Users/cwilliams/Library/Application Support/iPhone Simulator/6.0/Applications/8246C10F-C9F0-463E-9071-B912CD17923D/Documents/19f00ffb-4c29-42ba-b9b7-1b088a8a374e.log\n[INFO] iPhone Simulator log:\n[DEBUG] line1\n[DEBUG] line2\n[DEBUG] line3\n[ERROR] ( \n[ERROR] \",\n[DEBUG] ARG1,\n[DEBUG] ARG2\n[DEBUG] ) \n[WARN] ActiveTab property points to tab not in list. Ignoring\n[DEBUG] Application booted in 39.372027 ms\n{code}\n\nWhich indicates to me that the CLI/SDK is busted and is not spitting out all the output we expect. I see the same output inside the IDE.", "updateAuthor": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "created": "2012-11-14T16:15:06.000+0000", "updated": "2012-11-14T16:15:06.000+0000" }, { "id": "227335", "author": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "body": "Another test, which shows that CLI output is being truncated/modified on some lines, as well as that the log level is being printed incorrectly for multi-line output. And it looks like the mis-classification and broken output from the CLI are causing the errors in Studio.\n\napp:\n{code}\nconsole.log('console LOG');\nconsole.log(['console LOG', 'ARG1', 'ARG2']);\n \nconsole.debug('console DEBUG');\nconsole.debug(['console DEBUG', 'ARG1', 'ARG2']);\n \nconsole.info('console INFO');\nconsole.info(['console INFO', 'ARG1', 'ARG2']);\n \nconsole.warn('console WARN');\nconsole.warn(['console WARN', 'ARG1', 'ARG2']);\n \nconsole.error('console ERROR');\nconsole.error(['console ERROR', 'ARG1', 'ARG2']);\n \nTi.API.trace('Ti.API TRACE');\nTi.API.trace(['Ti.API TRACE', 'ARG1', 'ARG2']);\n \nTi.API.debug('Ti.API DEBUG');\nTi.API.debug(['Ti.API DEBUG', 'ARG1', 'ARG2']);\n \nTi.API.info('Ti.API INFO');\nTi.API.info(['Ti.API INFO', 'ARG1', 'ARG2']);\n \nTi.API.warn('Ti.API WARN');\nTi.API.warn(['Ti.API WARN', 'ARG1', 'ARG2']);\n \nTi.API.error('Ti.API ERROR');\nTi.API.error(['Ti.API ERROR', 'ARG1', 'ARG2']);\n \nTi.API.log('TRACE', 'Ti.API.log TRACE');\nTi.API.log('TRACE', ['Ti.API.log TRACE', 'ARG1', 'ARG2']);\n \nTi.API.log('DEBUG', 'Ti.API.log DEBUG');\nTi.API.log('DEBUG', ['Ti.API.log DEBUG', 'ARG1', 'ARG2']);\n \nTi.API.log('INFO', 'Ti.API.log INFO');\nTi.API.log('INFO', ['Ti.API.log INFO', 'ARG1', 'ARG2']);\n \nTi.API.log('WARN', 'Ti.API.log WARN');\nTi.API.log('WARN', ['Ti.API.log WARN', 'ARG1', 'ARG2']);\n \nTi.API.log('ERROR', 'Ti.API.log ERROR');\nTi.API.log('ERROR', ['Ti.API.log ERROR', 'ARG1', 'ARG2']);\n \nTi.API.log('LOG', 'Ti.API.log LOG');\nTi.API.log('LOG', ['Ti.API.log LOG', 'ARG1', 'ARG2']);\n \nif(Ti.Platform.osname == 'iphone' || Ti.Platform.osname == 'ipad')\n{\n Ti.API.timestamp('Ti.API TIMESTAMP');\n Ti.API.timestamp(['Ti.API TIMESTAMP', 'ARG1', 'ARG2']);\n}\n{code}\n\nCommand line output:\n{code}\n[DEBUG] Found iPhone Simulator log file: /Users/cwilliams/Library/Application Support/iPhone Simulator/6.0/Applications/8246C10F-C9F0-463E-9071-B912CD17923D/Documents/19f00ffb-4c29-42ba-b9b7-1b088a8a374e.log\n[INFO] iPhone Simulator log:\n[INFO] Application started\n[DEBUG] Reading stylesheet from: /Users/cwilliams/Library/Application Support/iPhone Simulator/6.0/Applications/8246C10F-C9F0-463E-9071-B912CD17923D/sfgsdfg.app/stylesheet.plist\n[INFO] sfgsdfg/1.0 (0.0.0.0d56fb4)\n[DEBUG] Analytics is enabled = YES\n[DEBUG] Loading: /Users/cwilliams/Library/Application Support/iPhone Simulator/6.0/Applications/8246C10F-C9F0-463E-9071-B912CD17923D/sfgsdfg.app/app.js, Resource: app_js\n[INFO] console LOG\n[INFO] ( \n[DEBUG] \"console LOG\",\n[DEBUG] ARG1,\n[DEBUG] ARG2\n[DEBUG] ) \n[DEBUG] console DEBUG\n[DEBUG] ( \n[DEBUG] \",\n[DEBUG] ARG1,\n[DEBUG] ARG2\n[DEBUG] ) \n[INFO] console INFO\n[INFO] ( \n[INFO] \",\n[DEBUG] ARG1,\n[DEBUG] ARG2\n[DEBUG] ) \n[WARN] console WARN\n[WARN] ( \n[WARN] \",\n[DEBUG] ARG1,\n[DEBUG] ARG2\n[DEBUG] ) \n[ERROR] console ERROR\n[ERROR] ( \n[ERROR] \",\n[DEBUG] ARG1,\n[DEBUG] ARG2\n[DEBUG] ) \n[TRACE] Ti.API TRACE\n[TRACE] ( \n[TRACE] \",\n[DEBUG] ARG1,\n[DEBUG] ARG2\n[DEBUG] ) \n[DEBUG] Ti.API DEBUG\n[DEBUG] ( \n[DEBUG] \",\n[DEBUG] ARG1,\n[DEBUG] ARG2\n[DEBUG] ) \n[INFO] Ti.API INFO\n[INFO] ( \n[INFO] \",\n[DEBUG] ARG1,\n[DEBUG] ARG2\n[DEBUG] ) \n[WARN] Ti.API WARN\n[WARN] ( \n[WARN] \",\n[DEBUG] ARG1,\n[DEBUG] ARG2\n[DEBUG] ) \n[ERROR] Ti.API ERROR\n[ERROR] ( \n[ERROR] \",\n[DEBUG] ARG1,\n[DEBUG] ARG2\n[DEBUG] ) \n[TRACE] Ti.API.log TRACE\n[TRACE] ( \n[TRACE] \",\n[DEBUG] ARG1,\n[DEBUG] ARG2\n[DEBUG] ) \n[DEBUG] Ti.API.log DEBUG\n[DEBUG] ( \n[DEBUG] \",\n[DEBUG] ARG1,\n[DEBUG] ARG2\n[DEBUG] ) \n[INFO] Ti.API.log INFO\n[INFO] ( \n[INFO] \",\n[DEBUG] ARG1,\n[DEBUG] ARG2\n[DEBUG] ) \n[WARN] Ti.API.log WARN\n[WARN] ( \n[WARN] \",\n[DEBUG] ARG1,\n[DEBUG] ARG2\n[DEBUG] ) \n[ERROR] Ti.API.log ERROR\n[ERROR] ( \n[ERROR] \",\n[DEBUG] ARG1,\n[DEBUG] ARG2\n[DEBUG] ) \n[DEBUG] [LOG] Ti.API.log LOG\n[DEBUG] [LOG] (\n[DEBUG] \"Ti.API.log LOG\",\n[DEBUG] ARG1,\n[DEBUG] ARG2\n[DEBUG] ) \n[DEBUG] [TIMESTAMP] 374602955.638459 Ti.API TIMESTAMP\n[DEBUG] [TIMESTAMP] 374602955.638546 (\n[DEBUG] \"Ti.API TIMESTAMP\",\n[DEBUG] ARG1,\n[DEBUG] ARG2\n[DEBUG] ) \n[WARN] ActiveTab property points to tab not in list. Ignoring\n[DEBUG] Application booted in 40.673018 ms\n{code}\n\nContent of iphone log the output makes mention of:\n{code}\n[INFO] Application started\n[DEBUG] Reading stylesheet from: /Users/cwilliams/Library/Application Support/iPhone Simulator/6.0/Applications/8246C10F-C9F0-463E-9071-B912CD17923D/sfgsdfg.app/stylesheet.plist\n[INFO] sfgsdfg/1.0 (0.0.0.0d56fb4)\n[DEBUG] Analytics is enabled = YES\n[DEBUG] Loading: /Users/cwilliams/Library/Application Support/iPhone Simulator/6.0/Applications/8246C10F-C9F0-463E-9071-B912CD17923D/sfgsdfg.app/app.js, Resource: app_js\n[INFO] console LOG\n[INFO] (\n \"console LOG\",\n ARG1,\n ARG2\n)\n[DEBUG] console DEBUG\n[DEBUG] (\n \"console DEBUG\",\n ARG1,\n ARG2\n)\n[INFO] console INFO\n[INFO] (\n \"console INFO\",\n ARG1,\n ARG2\n)\n[WARN] console WARN\n[WARN] (\n \"console WARN\",\n ARG1,\n ARG2\n)\n[ERROR] console ERROR\n[ERROR] (\n \"console ERROR\",\n ARG1,\n ARG2\n)\n[TRACE] Ti.API TRACE\n[TRACE] (\n \"Ti.API TRACE\",\n ARG1,\n ARG2\n)\n[DEBUG] Ti.API DEBUG\n[DEBUG] (\n \"Ti.API DEBUG\",\n ARG1,\n ARG2\n)\n[INFO] Ti.API INFO\n[INFO] (\n \"Ti.API INFO\",\n ARG1,\n ARG2\n)\n[WARN] Ti.API WARN\n[WARN] (\n \"Ti.API WARN\",\n ARG1,\n ARG2\n)\n[ERROR] Ti.API ERROR\n[ERROR] (\n \"Ti.API ERROR\",\n ARG1,\n ARG2\n)\n[TRACE] Ti.API.log TRACE\n[TRACE] (\n \"Ti.API.log TRACE\",\n ARG1,\n ARG2\n)\n[DEBUG] Ti.API.log DEBUG\n[DEBUG] (\n \"Ti.API.log DEBUG\",\n ARG1,\n ARG2\n)\n[INFO] Ti.API.log INFO\n[INFO] (\n \"Ti.API.log INFO\",\n ARG1,\n ARG2\n)\n[WARN] Ti.API.log WARN\n[WARN] (\n \"Ti.API.log WARN\",\n ARG1,\n ARG2\n)\n[ERROR] Ti.API.log ERROR\n[ERROR] (\n \"Ti.API.log ERROR\",\n ARG1,\n ARG2\n)\n[LOG] Ti.API.log LOG\n[LOG] (\n \"Ti.API.log LOG\",\n ARG1,\n ARG2\n)\n[TIMESTAMP] 374603024.160193 Ti.API TIMESTAMP\n[TIMESTAMP] 374603024.160246 (\n \"Ti.API TIMESTAMP\",\n ARG1,\n ARG2\n)\n[WARN] ActiveTab property points to tab not in list. Ignoring\n[DEBUG] Application booted in 184.858978 ms\n{code}\n\nAnd Studio's output when run inside the IDE with log level set to INFO (so DEBUG and TRACE are filtered out):\n{code}\n[INFO] : \b\b \biPhone Simulator log:\n[INFO] : \b\b \bApplication started\n[INFO] : \b\b \bsfgsdfg/1.0 (0.0.0.0d56fb4)\n[INFO] : \b\b \bconsole LOG\n[INFO] : \b\b \b(\n[INFO] : \b\b \bconsole INFO\n[INFO] : \b\b \b(\n[INFO] : \b\b \b\",\n[WARN] : \b\b \bconsole WARN\n[WARN] : \b\b \b(\n[WARN] : \b\b \b\",\n[ERROR] : \b\b \bconsole ERROR\n[INFO] : \b\b \bTi.API INFO\n[INFO] : \b\b \b(\n[INFO] : \b\b \b\",\n[WARN] : \b\b \bTi.API WARN\n[WARN] : \b\b \b(\n[WARN] : \b\b \b\",\n[ERROR] : \b\b \b(\n[ERROR] : \b\b \b\",\n[ERROR] : \b\b \bTi.API ERROR\n[ERROR] : \b\b \b(\n[ERROR] : \b\b \b\",\n[INFO] : \b\b \bTi.API.log INFO\n[INFO] : \b\b \b(\n[INFO] : \b\b \b\",\n[WARN] : \b\b \bTi.API.log WARN\n[WARN] : \b\b \b(\n[WARN] : \b\b \b\",\n[ERROR] : \b\b \bTi.API.log ERROR\n[ERROR] : \b\b \b(\n[ERROR] : \b\b \b\",\n[WARN] : \b\b \bActiveTab property points to tab not in list. Ignoring\n{code}\n\nWhen you compare this versus the command line output you can see that the CLI is printing out the strings wrong in the multiline output just printing the ending {{\",}} - and that output with multiple lines that have some leading whitespace all get classified as {{[DEBUG]}} by the CLI improperly. As a result we're printing the bad string values and filtering the mis-classified lines (since they're below our log level threshold).", "updateAuthor": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "created": "2012-11-14T17:48:14.000+0000", "updated": "2012-11-14T17:48:14.000+0000" }, { "id": "238313", "author": { "name": "dhyde", "key": "dhyde", "displayName": "Dustin Hyde", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Using code:\r\n\r\n{code}\r\nvar win = Ti.UI.createWindow({\r\n\tbackgroundColor : 'blue'\r\n});\r\n\r\nvar button = Ti.UI.createButton({\r\n\ttitle : 'click',\r\n\ttop : '40%',\r\n\tbottom : '40%',\r\n\tleft : '30%',\r\n\tright : '30%'\r\n});\r\n\r\nbutton.addEventListener('click', function() {\r\n\tconsole.log('console.log()');\r\n\tconsole.log(['arg0', 'arg1', 'arg2']);\r\n\r\n\tconsole.debug('console.debug()');\r\n\tconsole.debug(['arg0', 'arg1', 'arg2']);\r\n\r\n\tconsole.info('console.info()');\r\n\tconsole.info(['arg0', 'arg1', 'arg2']);\r\n\r\n\tconsole.warn('console.warn()');\r\n\tconsole.warn(['arg0', 'arg1', 'arg2']);\r\n\r\n\tconsole.error('console.error()');\r\n\tconsole.error(['arg0', 'arg1', 'arg2']);\r\n\r\n\tTi.API.trace('Ti.API.trace()');\r\n\tTi.API.trace(['arg0', 'arg1', 'arg2']);\r\n\r\n\tTi.API.debug('Ti.API.debug([])');\r\n\tTi.API.debug(['arg0', 'arg1', 'arg2']);\r\n\r\n\tTi.API.info('Ti.API.info([])');\r\n\tTi.API.info(['arg0', 'arg1', 'arg2']);\r\n\r\n\tTi.API.warn('Ti.API.warn([])');\r\n\tTi.API.warn(['arg0', 'arg1', 'arg2']);\r\n\r\n\tTi.API.error('Ti.API.error([])');\r\n\tTi.API.error(['arg0', 'arg1', 'arg2']);\r\n\r\n\tTi.API.log('TRACE', 'Ti.API.log(TRACE)');\r\n\tTi.API.log('TRACE', ['arg0', 'arg1', 'arg2']);\r\n\r\n\tTi.API.log('DEBUG', 'Ti.API.log(DEBUG)');\r\n\tTi.API.log('DEBUG', ['arg0', 'arg1', 'arg2']);\r\n\r\n\tTi.API.log('INFO', 'Ti.API.log(INFO)');\r\n\tTi.API.log('INFO', ['arg0', 'arg1', 'arg2']);\r\n\r\n\tTi.API.log('WARN', 'Ti.API.log(WARN)');\r\n\tTi.API.log('WARN', ['arg0', 'arg1', 'arg2']);\r\n\r\n\tTi.API.log('ERROR', 'Ti.API.log(ERROR)');\r\n\tTi.API.log('ERROR', ['arg0', 'arg1', 'arg2']);\r\n\r\n\tTi.API.log('LOG', 'Ti.API.log(LOG)');\r\n\tTi.API.log('LOG', ['arg0', 'arg1', 'arg2']);\r\n\r\n\tswitch(Ti.Platform.osname)\r\n\t{\r\n\t\tcase 'ipad':\r\n\t\tcase 'iphone':\r\n\t\t{\r\n\t\t\tTi.API.timestamp('Ti.API.timestamp()');\r\n\t\t\tTi.API.timestamp(['arg0', 'arg1', 'arg2']);\r\n\t\t}\r\n\t}\r\n});\r\n\r\nwin.add(button);\r\nwin.open(); \r\n{code}\r\n\r\nProduces output:\r\n\r\n{code}\r\n[INFO] : console.log()\r\n[DEBUG] : console.debug()\r\n[DEBUG] : (\r\n[INFO] : (\r\n[DEBUG] : arg0,\r\n[INFO] : arg0,\r\n[DEBUG] : arg1,\r\n[INFO] : arg1,\r\n[DEBUG] : arg2\r\n[INFO] : arg2\r\n[DEBUG] : )\r\n[INFO] : )\r\n[INFO] : console.info()\r\n[INFO] : (\r\n[INFO] : arg0,\r\n[INFO] : arg1,\r\n[INFO] : arg2\r\n[INFO] : )\r\n[WARN] : console.warn()\r\n[ERROR] : console.error()\r\n[WARN] : (\r\n[ERROR] : (\r\n[WARN] : arg0,\r\n[ERROR] : arg0,\r\n[ERROR] : arg1,\r\n[WARN] : arg1,\r\n[ERROR] : arg2\r\n[WARN] : arg2\r\n[ERROR] : )\r\n[WARN] : )\r\n[DEBUG] : Ti.API.debug([])\r\n[DEBUG] : (\r\n[TRACE] : Ti.API.trace()\r\n[DEBUG] : arg0,\r\n[TRACE] : (\r\n[DEBUG] : arg1,\r\n[DEBUG] : arg2\r\n[TRACE] : arg0,\r\n[DEBUG] : )\r\n[TRACE] : arg1,\r\n[ERROR] : Ti.API.error([])\r\n[TRACE] : arg2\r\n[ERROR] : (\r\n[TRACE] : )\r\n[ERROR] : arg0,\r\n[ERROR] : arg1,\r\n[INFO] : Ti.API.info([])\r\n[ERROR] : arg2\r\n[INFO] : (\r\n[ERROR] : )\r\n[INFO] : arg0,\r\n[DEBUG] : Ti.API.log(DEBUG)\r\n[INFO] : arg1,\r\n[DEBUG] : (\r\n[INFO] : arg2\r\n[DEBUG] : arg0,\r\n[INFO] : )\r\n[DEBUG] : arg1,\r\n[WARN] : Ti.API.warn([])\r\n[DEBUG] : arg2\r\n[WARN] : (\r\n[DEBUG] : )\r\n[WARN] : arg0,\r\n[WARN] : arg1,\r\n[WARN] : arg2\r\n[WARN] : )\r\n[TRACE] : Ti.API.log(TRACE)\r\n[TRACE] : (\r\n[TRACE] : arg0,\r\n[TRACE] : arg1,\r\n[TRACE] : arg2\r\n[TRACE] : )\r\n[INFO] : Ti.API.log(INFO)\r\n[INFO] : (\r\n[INFO] : arg0,\r\n[INFO] : arg1,\r\n[INFO] : arg2\r\n[INFO] : )\r\n[WARN] : Ti.API.log(WARN)\r\n[WARN] : (\r\n[WARN] : arg0,\r\n[WARN] : arg1,\r\n[WARN] : arg2\r\n[WARN] : )\r\n[ERROR] : Ti.API.log(ERROR)\r\n[ERROR] : (\r\n[ERROR] : arg0,\r\n[ERROR] : arg1,\r\n[ERROR] : arg2\r\n[ERROR] : )\r\n[ERROR] : [LOG] Ti.API.log(LOG)\r\n[ERROR] : [LOG] (\r\n[ERROR] : arg0,\r\n[ERROR] : arg1,\r\n[ERROR] : arg2\r\n[ERROR] : )\r\n[ERROR] : [TIMESTAMP] 382417823.074028 Ti.API.timestamp()\r\n[ERROR] : [TIMESTAMP] 382417823.074065 (\r\n[ERROR] : arg0,\r\n[ERROR] : arg1,\r\n[ERROR] : arg2\r\n[ERROR] : )\r\n{code}\r\n\r\nThe colors are correct, but the output appears to be on different threads.\r\n\r\nTitanium Studio: 3.0.2.201302081641\r\nTitanium SDK: 3.0.2.v20130207164659\r\nTitanium CLI: 3.0.23\r\nOS: 10.8.2\r\nXcode: 4.6\r\niPhone Simulator: 6.1\r\n\r\nBehavior captured in TIMOB-12719.", "updateAuthor": { "name": "dhyde", "key": "dhyde", "displayName": "Dustin Hyde", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-02-13T03:16:30.000+0000", "updated": "2013-02-13T03:50:56.000+0000" }, { "id": "238315", "author": { "name": "dhyde", "key": "dhyde", "displayName": "Dustin Hyde", "active": true, "timeZone": "America/Los_Angeles" }, "body": "On a more positive note, some of this behavior seems to have gone away, such as the coloring inaccuracies.\r\n\r\nAll isolated behaviors are being moved to sub-tasks of TIMOB-8424.", "updateAuthor": { "name": "dhyde", "key": "dhyde", "displayName": "Dustin Hyde", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-02-13T04:12:38.000+0000", "updated": "2013-02-13T04:32:33.000+0000" }, { "id": "240661", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "Dupe of TIMOB-12809.", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2013-03-05T01:12:12.000+0000", "updated": "2013-03-05T01:12:12.000+0000" }, { "id": "241194", "author": { "name": "oromero", "key": "oromero", "displayName": "Olga Romero", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Tested Dustin's code from 12/Feb/13 7:16 PM\nProduces output:\n\n[INFO] : \b\b \b console.log()\n[DEBUG] : \b\b \bconsole.debug()\n[INFO] : \b\b \b (\n[INFO] : \b\b \b arg0,\n[INFO] : \b\b \b arg1,\n[INFO] : \b\b \b arg2\n[INFO] : \b\b \b )\n[DEBUG] : \b\b \b(\n[DEBUG] : \b\b \b arg0,\n[DEBUG] : \b\b \b arg1,\n[DEBUG] : \b\b \b arg2\n[DEBUG] : \b\b \b)\n[INFO] : \b\b \b console.info()\n[INFO] : \b\b \b (\n[INFO] : \b\b \b arg0,\n[INFO] : \b\b \b arg1,\n[INFO] : \b\b \b arg2\n[INFO] : \b\b \b )\n[WARN] : \b\b \b console.warn()\n[WARN] : \b\b \b (\n[WARN] : \b\b \b arg0,\n[WARN] : \b\b \b arg1,\n[WARN] : \b\b \b arg2\n[WARN] : \b\b \b )\n[ERROR] : \b\b \bconsole.error()\n[ERROR] : \b\b \b(\n[ERROR] : \b\b \b arg0,\n[ERROR] : \b\b \b arg1,\n[ERROR] : \b\b \b arg2\n[ERROR] : \b\b \b)\n[TRACE] : \b\b \bTi.API.trace()\n[TRACE] : \b\b \b(\n[TRACE] : \b\b \b arg0,\n[TRACE] : \b\b \b arg1,\n[TRACE] : \b\b \b arg2\n[TRACE] : \b\b \b)\n[DEBUG] : \b\b \bTi.API.debug([])\n[DEBUG] : \b\b \b(\n[DEBUG] : \b\b \b arg0,\n[DEBUG] : \b\b \b arg1,\n[DEBUG] : \b\b \b arg2\n[DEBUG] : \b\b \b)\n[INFO] : \b\b \b Ti.API.info([])\n[INFO] : \b\b \b (\n[INFO] : \b\b \b arg0,\n[INFO] : \b\b \b arg1,\n[INFO] : \b\b \b arg2\n[INFO] : \b\b \b )\n[WARN] : \b\b \b Ti.API.warn([])\n[WARN] : \b\b \b (\n[WARN] : \b\b \b arg0,\n[WARN] : \b\b \b arg1,\n[WARN] : \b\b \b arg2\n[WARN] : \b\b \b )\n[ERROR] : \b\b \bTi.API.error([])\n[ERROR] : \b\b \b(\n[ERROR] : \b\b \b arg0,\n[ERROR] : \b\b \b arg1,\n[ERROR] : \b\b \b arg2\n[ERROR] : \b\b \b)\n[TRACE] : \b\b \bTi.API.log(TRACE)\n[TRACE] : \b\b \b(\n[TRACE] : \b\b \b arg0,\n[TRACE] : \b\b \b arg1,\n[TRACE] : \b\b \b arg2\n[TRACE] : \b\b \b)\n[DEBUG] : \b\b \bTi.API.log(DEBUG)\n[DEBUG] : \b\b \b(\n[DEBUG] : \b\b \b arg0,\n[DEBUG] : \b\b \b arg1,\n[DEBUG] : \b\b \b arg2\n[DEBUG] : \b\b \b)\n[INFO] : \b\b \b Ti.API.log(INFO)\n[INFO] : \b\b \b (\n[INFO] : \b\b \b arg0,\n[INFO] : \b\b \b arg1,\n[INFO] : \b\b \b arg2\n[INFO] : \b\b \b )\n[WARN] : \b\b \b Ti.API.log(WARN)\n[WARN] : \b\b \b (\n[WARN] : \b\b \b arg0,\n[WARN] : \b\b \b arg1,\n[WARN] : \b\b \b arg2\n[WARN] : \b\b \b )\n[ERROR] : \b\b \bTi.API.log(ERROR)\n[ERROR] : \b\b \b(\n[ERROR] : \b\b \b arg0,\n[ERROR] : \b\b \b arg1,\n[ERROR] : \b\b \b arg2\n[ERROR] : \b\b \b)\n[ERROR] : \b\b \b[LOG] Ti.API.log(LOG)\n[ERROR] : \b\b \b[LOG] (\n[ERROR] : \b\b \b arg0,\n[ERROR] : \b\b \b arg1,\n[ERROR] : \b\b \b arg2\n[ERROR] : \b\b \b)\n[ERROR] : \b\b \b[TIMESTAMP] 384374773.708832 Ti.API.timestamp()\n[ERROR] : \b\b \b[TIMESTAMP] 384374773.708888 (\n[ERROR] : \b\b \b arg0,\n[ERROR] : \b\b \b arg1,\n[ERROR] : \b\b \b arg2\n[ERROR] : \b\b \b)\n[INFO] : \b\b \b console.log()\n[DEBUG] : \b\b \bconsole.debug()\n[INFO] : \b\b \b (\n[INFO] : \b\b \b arg0,\n[INFO] : \b\b \b arg1,\n[INFO] : \b\b \b arg2\n[INFO] : \b\b \b )\n[INFO] : \b\b \b console.info()\n[INFO] : \b\b \b (\n[INFO] : \b\b \b arg0,\n[INFO] : \b\b \b arg1,\n[INFO] : \b\b \b arg2\n[INFO] : \b\b \b )\n[WARN] : \b\b \b console.warn()\n[WARN] : \b\b \b (\n[WARN] : \b\b \b arg0,\n[WARN] : \b\b \b arg1,\n[WARN] : \b\b \b arg2\n[WARN] : \b\b \b )\n[TRACE] : \b\b \bTi.API.trace()\n[DEBUG] : \b\b \b(\n[DEBUG] : \b\b \b arg0,\n[TRACE] : \b\b \b(\n[DEBUG] : \b\b \b arg1,\n[DEBUG] : \b\b \b arg2\n[DEBUG] : \b\b \b)\n[TRACE] : \b\b \b arg0,\n[TRACE] : \b\b \b arg1,\n[ERROR] : \b\b \bconsole.error()\n[ERROR] : \b\b \b(\n[ERROR] : \b\b \b arg0,\n[ERROR] : \b\b \b arg1,\n[ERROR] : \b\b \b arg2\n[ERROR] : \b\b \b)\n[TRACE] : \b\b \b arg2\n[TRACE] : \b\b \b)\n[DEBUG] : \b\b \bTi.API.debug([])\n[DEBUG] : \b\b \b(\n[DEBUG] : \b\b \b arg0,\n[DEBUG] : \b\b \b arg1,\n[DEBUG] : \b\b \b arg2\n[DEBUG] : \b\b \b)\n[INFO] : \b\b \b Ti.API.info([])\n[INFO] : \b\b \b (\n[INFO] : \b\b \b arg0,\n[INFO] : \b\b \b arg1,\n[INFO] : \b\b \b arg2\n[INFO] : \b\b \b )\n[WARN] : \b\b \b Ti.API.warn([])\n[WARN] : \b\b \b (\n[WARN] : \b\b \b arg0,\n[WARN] : \b\b \b arg1,\n[WARN] : \b\b \b arg2\n[WARN] : \b\b \b )\n[ERROR] : \b\b \bTi.API.error([])\n[ERROR] : \b\b \b(\n[ERROR] : \b\b \b arg0,\n[ERROR] : \b\b \b arg1,\n[ERROR] : \b\b \b arg2\n[ERROR] : \b\b \b)\n[TRACE] : \b\b \bTi.API.log(TRACE)\n[TRACE] : \b\b \b(\n[TRACE] : \b\b \b arg0,\n[TRACE] : \b\b \b arg1,\n[TRACE] : \b\b \b arg2\n[TRACE] : \b\b \b)\n[DEBUG] : \b\b \bTi.API.log(DEBUG)\n[DEBUG] : \b\b \b(\n[DEBUG] : \b\b \b arg0,\n[DEBUG] : \b\b \b arg1,\n[DEBUG] : \b\b \b arg2\n[DEBUG] : \b\b \b)\n[INFO] : \b\b \b Ti.API.log(INFO)\n[INFO] : \b\b \b (\n[INFO] : \b\b \b arg0,\n[INFO] : \b\b \b arg1,\n[INFO] : \b\b \b arg2\n[INFO] : \b\b \b )\n[WARN] : \b\b \b Ti.API.log(WARN)\n[WARN] : \b\b \b (\n[WARN] : \b\b \b arg0,\n[WARN] : \b\b \b arg1,\n[WARN] : \b\b \b arg2\n[WARN] : \b\b \b )\n[ERROR] : \b\b \bTi.API.log(ERROR)\n[ERROR] : \b\b \b(\n[ERROR] : \b\b \b arg0,\n[ERROR] : \b\b \b arg1,\n[ERROR] : \b\b \b arg2\n[ERROR] : \b\b \b)\n[ERROR] : \b\b \b[LOG] Ti.API.log(LOG)\n[ERROR] : \b\b \b[LOG] (\n[ERROR] : \b\b \b arg0,\n[ERROR] : \b\b \b arg1,\n[ERROR] : \b\b \b arg2\n[ERROR] : \b\b \b)\n[ERROR] : \b\b \b[TIMESTAMP] 384374799.414399 Ti.API.timestamp()\n[ERROR] : \b\b \b[TIMESTAMP] 384374799.414450 (\n[ERROR] : \b\b \b arg0,\n[ERROR] : \b\b \b arg1,\n[ERROR] : \b\b \b arg2\n[ERROR] : \b\b \b)\n\nTitanium Studio: 3.0.2.201302191606\nTitanium SDK: 3.1.0.v20130306145654\nTitanium CLI: 3.0.25\nOS: 10.8.2\nXcode: 4.6\niPhone Simulator: 6.1\n\nClosing as Duplicate", "updateAuthor": { "name": "oromero", "key": "oromero", "displayName": "Olga Romero", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-03-07T19:32:38.000+0000", "updated": "2013-03-07T19:32:38.000+0000" } ], "maxResults": 8, "total": 8, "startAt": 0 } } }