{
  "ruleId": "C019",
  "name": "Log Level Usage",
  "description": "Không sử dụng log mức error cho lỗi không nghiêm trọng",
  "category": "logging",
  "severity": "warning",
  "languages": ["typescript", "dart", "kotlin"],
  "version": "1.0.0",
  "status": "stable",
  "tags": ["logging", "error-handling", "severity"],
  "config": {
    "errorKeywords": [
      "not found",
      "invalid",
      "unauthorized",
      "forbidden",
      "validation failed",
      "bad request",
      "cache miss",
      "retry",
      "fallback",
      "user error",
      "input error",
      "validation",
      "invalid input",
      "missing parameter",
      "exceed",
      "limit"
    ],
    "legitimateErrorKeywords": [
      "exception",
      "crash",
      "fatal",
      "critical",
      "emergency",
      "database",
      "connection",
      "timeout",
      "security breach",
      "system error",
      "memory",
      "disk space",
      "internal server error",
      "unhandled exception",
      "stack overflow"
    ],
    "languageSpecific": {
      "typescript": {
        "loggerPatterns": [
          "console.error(",
          "logger.error(",
          "log.error(",
          ".error(",
          "Logger.error(",
          "winston.error(",
          "bunyan.error("
        ]
      },
      "dart": {
        "loggerPatterns": [
          "log.error(",
          "logger.error(",
          "Logger.error(",
          "_logger.error(",
          "print("
        ]
      },
      "kotlin": {
        "loggerPatterns": [
          "Log.e(",
          "logger.error(",
          "log.error(",
          "Timber.e("
        ]
      }
    }
  },
  "examples": {
    "violations": [
      {
        "language": "typescript",
        "code": "logger.error('User not found');",
        "reason": "User not found is a business logic issue, not a system error"
      },
      {
        "language": "typescript", 
        "code": "console.error('Invalid input provided');",
        "reason": "Input validation should use warn level"
      },
      {
        "language": "dart",
        "code": "logger.error('Validation failed for user input');",
        "reason": "Validation failures are expected business logic"
      }
    ],
    "valid": [
      {
        "language": "typescript",
        "code": "logger.error('Database connection failed');",
        "reason": "Database issues are legitimate system errors"
      },
      {
        "language": "typescript",
        "code": "logger.warn('User not found');",
        "reason": "Appropriate warning level for business logic"
      },
      {
        "language": "dart",
        "code": "logger.error('Unhandled exception in payment processing');",
        "reason": "Unhandled exceptions are legitimate errors"
      }
    ]
  },
  "fixes": {
    "autoFixable": false,
    "suggestions": [
      "Use logger.warn() for business logic issues",
      "Use logger.info() for informational messages",
      "Reserve logger.error() for system-level problems",
      "Add specific error context to help determine appropriate level"
    ]
  }
}
